アプリケーションをアップグレードしていて、いくつかの問題が発生しています。現在、古いアプリケーションはバージョン 1.0 であり、バージョン 2.1.1 で依存関係アセンブリ A をロードしています。アセンブリは、アプリケーションのローカル ディレクトリに存在します。新しいアプリケーションをバージョン 2.0 にアップグレードしています。これにより、アプリケーションのローカル ディレクトリにあるアセンブリ A バージョン 1.0.1 が読み込まれます。ISpy を使用してアプリケーション リファレンスを確認し、新しいアプリケーション リファレンス A バージョン 1.0.1 を確認しました。
しかし、新しいアプリケーション (v 2.0) を起動すると、アセンブリ バージョン 2.1.1 を読み込もうとして失敗します。app.config、machine.config、および GAC を確認しましたが、アセンブリ A のバージョンのリダイレクトはありません。Fusion ログ ファイルも確認しましたが、リダイレクトは見られません。Fusion ログに表示されるのは、アプリケーションがバージョン 2.1.1 で A をプレバインドしているため、ローカル ディレクトリに存在するアセンブリのセットアップに失敗したことだけです。
私がここに欠けているものはありますか?実行時にアプリケーションがまだ古いアセンブリを参照している理由として考えられるものは何ですか?
更新:いくつかのツールを使用して、アプリケーションによって参照されているネイティブ DLL から古いアセンブリが参照されていることに気付きましたが、それがどのサード パーティの DLL であるかはわかりません。アプリケーションは大量のそれらをロードします。Fusion ログは、「Calling assembly : (Unknown)」をログに記録することで確認します。不足しているアセンブリ用。
次のステップは、間違ったアセンブリを参照している dll を見つけて修正することです。問題は、ILSpy ツールがネイティブ DLL 参照を表示せず、DLLDepends ツールがアセンブリ参照を表示しないため、2 つをリンクできないことです。
ありがとう