对我的.NET应用程序中的引用版本号感到困惑

时间:2010-02-04 15:29:45

标签: .net reference

我有一个.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版本,那么在我不知情的情况下,它将使用以前的版本中断每个应用程序。

我在这里得到了错误的结局吗?

2 个答案:

答案 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已签署。