3

参照されている dll が実行時に読み込まれる際に、謎のバージョンの不一致が発生しています。

次のようなエラー:

ファイルまたはアセンブリ X、またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

アセンブリ バインディングをデバッグする方法はありますか。

つまり、読み込まれたアセンブリに関する次の詳細を知るにはどうすればよいですか。

  • バージョン
  • 位置
  • 読み込みの原因 (私のコード、別の .dll、...)
  • まあ、他に知っておくべきことはほぼすべて...
4

2 に答える 2

6

アセンブリ バインディング ログ ビューアー( Fusion ログ ビューアー、fuslogvw.exe とも呼ばれます) は、次のような種類の問題に関する有用なデータを表示します。

  • アセンブリを読み込もうとしているプロセス
  • アセンブリの完全な名前 (バージョン、カルチャ、公開キー トークン)
  • 負荷の原因となっているアセンブリ
  • アセンブリのためにプローブされたパス

すべてのバインドをログに記録することも、バインドの失敗のみをログに記録することもできます。

fuslogvw.exe は、任意の VS コマンド プロンプトから直接アクセスできる必要があります。

于 2011-01-13T11:00:23.710 に答える
2

Chris に完全に同意します。Assembly Binding Log Viewerは、必要なすべての情報を提供するはずです。さらに、WinDbg + SOS.dll を使用することもできます。ほとんどの場合、デバッグに使用されますが、可能な限り多くの情報を知る必要がある場合に非常に役立ちます。あなたを止めることができる唯一の問題は、VSデバッガーのような素敵なUIがないことです:)

幸運を!

于 2011-01-13T13:34:34.743 に答える