我有一个带有MEF和RavenBD的asp.net MVC 4项目。

项目加载时会引发此异常:无法加载文件或程序集Antlr3.Runtime.dll

我发现RavenDB和WebGrease(与MVC 4一起安装)都使用Antlr3。但是WebGrease带有自己的Antlr3 dll,该文件已由Microsoft签名-PublicKeyToken 31bf3856ad364e35

Antlr3的默认PublicKeyToken是eb42632606e9261f。

RavenDB和WebGrease使用相同版本的Antlr3 3.3.1.7705

我该如何解决这个问题?

最佳答案

不幸的是,我没有找到解决方案来解决具有不同签名的相同版本的相互依赖关系。

但是好消息是,WebGrease的贡献者之一霍华德·迪尔金(Howard Dierking)通过电子邮件回答了我的担忧。这是他的回应:


嗨,马克西姆(Maxime)–抱歉您遇到了这个问题。我正在努力做一对
快速解决问题的方法:

1)使用最新的antlr准备对antlr软件包的更新
版本–将测试并推送到nuget.org

2)与WebGrease团队合作更改其NuGet软件包
这样它就不会运送antlr.dll,而是要打包
依赖性–与他们交谈时,他们没有意识到一个软件包
存在。

这应该可以解决您遇到的dll地狱问题。希望
假期不超过几个星期。

谢谢,

_howard

关于asp.net-mvc-4 - 如何解决Antlr3依赖 hell ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13297402/

10-10 18:12