C#asp.net支持多个版本的dll

时间:2013-06-28 14:23:06

标签: c# asp.net dll antlr

我有以下dll地狱:

  • 一个ASP.Net项目
    • 引用WebGrease
      • 引用Antlr3.Runtime.dll 3.3.1.7705 [存储在asp.net应用程序的/ bin /文件夹中]
    • 引用自定义项目
      • 引用NCalc.codeplex.com
        • 引用Antlr3.Runtime.dll 3.1.3.22795 [存储在asp.net应用程序的/ bin / CustomProject /文件夹中]

毫不奇怪,这两个版本的Antlr并不能很好地协同工作,我得到“找到的程序集的清单定义与程序集引用不匹配”错误

我不愿意修改WebGrease项目。

我正在尝试升级NCalc项目以使用3.3.1.7705但是我正在努力this

您对如何让这两个DLL一起工作有什么建议吗?

编辑遗憾的是,NCalc代码与较新版本的antlr不兼容,因此我无法使用绑定重定向

谢谢

1 个答案:

答案 0 :(得分:0)

提供NCalc可以使用更高版本的Antlr3.Runtime - 即没有重大更改,您应该能够使用绑定重定向来指示它加载更高版本

例如在web.config文件中输入类似

的内容
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="NCalc" publicKeyToken="xxxxxxxxx" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.1.3.0" newVersion="3.3.1.0" />
      </dependentAssembly> 

    </assemblyBinding>
  </runtime>

我不认为使用版本的第四位数