我有一个 Visual Studio 项目,它引用了我也创建的程序集。下面是项目中我的程序集引用属性的屏幕截图。当我将程序集版本更新为 时1.1.0.0
,我的项目失败了,我认为这个属性是问题所在。
既然Version
属性说1.0.0.0
,这是否意味着它总是会寻找我的程序集的版本1.0.0.0
?并且将我的版本增加到1.1.0.0
将导致我的项目根本看不到程序集?
我有一个 Visual Studio 项目,它引用了我也创建的程序集。下面是项目中我的程序集引用属性的屏幕截图。当我将程序集版本更新为 时1.1.0.0
,我的项目失败了,我认为这个属性是问题所在。
既然Version
属性说1.0.0.0
,这是否意味着它总是会寻找我的程序集的版本1.0.0.0
?并且将我的版本增加到1.1.0.0
将导致我的项目根本看不到程序集?
您有 2 个版本的强命名程序集。其他项目的设计行为是针对此类程序集的一个版本编译时无法加载具有不同版本的程序集。原因是版本更改表示 API 更改。否则它将使用相同版本进行就地更新 - 因此旧代码可能无法使用新的 DLL 正常运行。
选项:
旁注:根据所讨论的程序集是用于内部(您控制使用该程序集的所有项目)还是外部使用,您可能需要做更多的工作来确保向后兼容性和适当的弃用策略。
发布商政策示例:来自上面链接的文章:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<!-- Redirecting to version 2.0.0.0 of the assembly. -->
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>