Asp.net-Mvc-4
如何解決 Antlr3 依賴地獄
我有一個帶有 MEF 和 RavenBD 的 asp.net MVC 4 項目。
項目載入時會引發此異常:無法載入文件或程序集 Antlr3.Runtime.dll
我發現 RavenDB 和 WebGrease(隨 MVC 4 一起安裝)都使用 Antlr3。但是 WebGrease 帶有自己的 Antlr3 dll,由微軟簽名 - PublicKeyToken 31bf3856ad364e35
Antlr3 預設的 PublicKeyToken 是 eb42632606e9261f。
RavenDB 和 WebGrease 使用相同版本的 Antlr3 3.3.1.7705
我該如何解決這個問題?
不幸的是,我沒有找到解決具有不同簽名的相同版本的衝突依賴項的解決方案。
但好消息是,WebGrease 的貢獻者之一,Howard Dierking,已經通過電子郵件回答了我的擔憂。這是他的回應:
嗨馬克西姆——很抱歉你遇到了這個。我正在努力做幾件事來快速解決這個問題:
使用最新的 antlr 版本準備 antlr 包的更新——將測試並推送到 nuget.org
與 WebGrease 團隊合作更改他們的 NuGet 包,使其不發送 antlr.dll 而是接受包依賴項——在與他們交談時,他們不知道存在包。
這應該可以解決您遇到的 dll 地獄問題。希望假期不會超過幾週。
謝謝,
_霍華德