Asp.net-Mvc-4

如何解決 Antlr3 依賴地獄

  • November 8, 2012

我有一個帶有 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,已經通過電子郵件回答了我的擔憂。這是他的回應:

嗨馬克西姆——很抱歉你遇到了這個。我正在努力做幾件事來快速解決這個問題:

  1. 使用最新的 antlr 版本準備 antlr 包的更新——將測試並推送到 nuget.org

  2. 與 WebGrease 團隊合作更改他們的 NuGet 包,使其不發送 antlr.dll 而是接受包依賴項——在與他們交談時,他們不知道存在包。

這應該可以解決您遇到的 dll 地獄問題。希望假期不會超過幾週。

謝謝,

_霍華德

引用自:https://stackoverflow.com/questions/13297402