我有一个.NET项目,它引用了一个名为ABCPDF的DLL。编写应用程序时使用的版本号是7.0.2.3,应用程序已部署到登台服务器上。
登台服务器上的软件版本是7.0.2.8,应用程序正在破坏,说它找不到版本7.0.2.3
当然它应该使用DLL的7.0.2.8版本,而不是要求我在我的开发机器上使用7.0.2.8重新编译?如果我在6个月之后在实时服务器上更新ABCPDF版本,那么在我不知情的情况下,它将使用以前的版本中断每个应用程序。
我在这里得到了错误的结局吗?
答案 0 :(得分:3)
您可以考虑使用程序集绑定重定向,请参阅以下代码:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Your.Assembly" publicKeyToken="your token here"/>
<bindingRedirect oldVersion="7.0.2.3" newVersion="7.0.2.8"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
将该代码片段放在App.Config文件中
答案 1 :(得分:0)
右键单击引用,然后单击“属性”。
在参考的属性中,将“特定版本”设置为false。
虽然这可能会导致问题,如果ABCPDF破坏了向后兼容性,如果他们不这样做会解决您的问题。
修改:如果您使用的是已签名的程序集,则不适用,请参阅其他答案。没有意识到ABCPDF已签署。