假设我们有:
- 程序集 A 引用了 assebly NH 版本 2.0.0.0。
- 程序集 B 引用了 assebly NH 版本 2.0.0.0。
- 程序集 C 引用了 assebly NH 版本 1.0.0.0(意外)
- 我们的测试 Web 项目引用了组件 A、B、C 和 NH 2.0.0.0。
Nuget 有一个很棒的功能,它可以自动检测这些程序集冲突并创建绑定重定向指令。Nuget 命令Add-BindingRedirect会将此类字符串添加到测试项目 web.config 文件中:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NH" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
现在想象我们有更多的库,引用 NH。问题是:识别奇数版本的最佳(最好不是手动)方法是什么?