私たちが持っているとしましょう:
- アセンブリ A は、アセンブリ NH バージョン 2.0.0.0 を参照します。
- アセンブリ B は、アセンブリ NH バージョン 2.0.0.0 を参照します。
- アセンブリ C はアセンブリ 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 を参照するさらに多くのライブラリがあるとします。問題は、奇妙なバージョンを識別するための最良の (手動ではない方が望ましい) 方法は何ですか?