4

我有以下 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 但是我正在努力解决这个问题

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

编辑不幸的是,NCalc 代码与新版本的 antlr 不兼容,所以我不能使用绑定重定向

谢谢

4

1 回答 1

0

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

例如在 web.config 文件中的 ass 之类的

<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>

我认为没有使用版本上的第 4 位数字

于 2013-06-28T14:33:16.043 回答