私のプロジェクトでは、2 つの異なるサードパーティ コンポーネントを使用しています。これらのコンポーネントのソース コードにアクセスできません。
各コンポーネントは、同じ DLL アセンブリ log4net の異なるバージョンを参照しています。
特に、コンポーネント A は log4net バージョン 1.2.9.0 を参照し、コンポーネント B は log4net バージョン 1.2.10.0 を参照しています。
VS2012 では、現在、プロジェクトの参照に 2 つのサードパーティ コンポーネント DLL を追加しています。log4net への参照も追加する必要があります。
私は次のことを試しました:
1) log4net 1.2.9.0 への参照を追加: コードはコンパイルされますが、実行時に「ファイルまたはアセンブリを読み込めませんでした [...] log4net、バージョン = 1.2.10.0 [...]」という例外が発生します。
2) log4net 1.2.10.0 への参照を追加: コードはコンパイルされますが、実行時に「ファイルまたはアセンブリを読み込めませんでした [...] log4net, Version= 1.2.10.0 [...]」という例外が発生します。
3) log4net.dll バージョン 1.2.9.0 の名前を log4netOld.dll に変更し、バージョン 1.2.9.0 と 1.2.10.0 の両方をプロジェクト参照に追加します。コンパイラは 1.2.10.0 を使用して型を解決するため、実行時にポイント 2 と同じ問題が発生します -> コードはコンパイルされますが、実行時に「ファイルまたはアセンブリを読み込めませんでした [...] log4net, Version= 1.2.10.0 [ ...]」
私はすべての参照プロパティの専門家ではありません。すべての参照の現在の設定は次のとおりです。
1) エイリアス: グローバル
2) ローカルにコピー: true
3) 相互運用タイプの埋め込み: false
どうすれば問題を解決できますか?