0
X <= nuget package A <= DLL version 1
X <= nuget package B <= DLL version 2
私のプロジェクトXは2つのサードパーティーのナゲットパッケージAとBを参照しています。どちらのパッケージも同じDLLを参照していますが、異なるバージョンです。今はビルド時に、DLLv1がbinフォルダのDLLv2によってオーバーライドされているようです。また、実行時に、AのコードがDLLv1が見つからないと訴えています。ファイルまたはアセンブリまたはそのいずれかの依存関係を読み込めません。システムが指定されたファイルを見つけることができません
DLLv2にバインドするためにbinフォルダにアセンブリバインド設定ファイルを既に追加しました。しかし、それは何も変わらないようです。
これはmsbuildを使用して構築されたCSharpプロジェクトです。
質問:
- は、この問題を解決するための適切なツールをAssemblyBindingていますか?
- これを解決する適切な方法は何ですか?
シンプルな...これをしないでください。ソリューションのすべてのプロジェクトに同じバージョンのパッケージを参照させる必要があります。 –
ナゲットパッケージはサードパーティ製であり、どのDLLバージョンを使用するかについては何も制御できません。 – Lee
サードパーティのライブラリに特定のバージョンが固定されていない限り、消費するプロジェクト全体で共有依存関係を管理してインストールすることができます。ビンにはファイル名のインスタンスを1つしか持てません。これでうまくいかない場合は、プロジェクトを複数の入り口に分けて、それぞれに特定のバージョンの共通ライブラリ –