我有一个Visual Studio项目,它引用了我也创建的程序集。下面是项目中程序集引用属性的屏幕截图。当我将程序集版本更新为1.1.0.0
时,我的项目失败了,我认为这个属性就是问题。
由于Version
属性显示为1.0.0.0
,这是否意味着它始终会查找版本为1.0.0.0
的程序集?将我的版本增加到1.1.0.0
将导致我的项目根本看不到程序集?
答案 0 :(得分:0)
您有两个版本的强命名程序集。根据其他项目的设计行为,针对此类程序集的一个版本进行编译,无法加载具有不同版本的程序集。原因是版本更改表示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>