我有以下问题。我创建了软件,在一个解决方案中包含多个项目。当我在我的一个项目中修复一个不会改变函数行为方式的错误时,(例如一个简单的字符串更改,或一个函数中的额外 try/catch 块)我必须重新编译并再次提供我的所有 dll,因为当我只提供更改后的dll,版本不匹配。我知道问题是由于我的 dll 被强命名。但是有什么方法可以实现我可以只替换更改后的 dll,同时提高版本号,而无需更改和分发其他 dll?
最佳答案
您可以同时拥有这两个 dll 并且可以使用 bindingRedirect 如下链接
dll versioning in dotnet
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="AssemblyName"
publicKeyToken="32ab4ba45e0a69a1"
culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
关于替换一个 dll 时的 .net dll 版本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7321511/