最近発生したアセンブリの読み込み/バインド エラーを追跡しています。調査中に、紛らわしい矛盾が見つかりました (融合ログを正しく解析していると仮定して)。
起動時にアプリケーションによってスローされる例外は次のとおりです。
{"ファイルまたはアセンブリ 'Microsoft.Practices.CompositeUI, Version=1.0.51205.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。 HRESULT: 0x80131040)":"Microsoft.Practices.CompositeUI、バージョン = 1.0.51205.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35"}
最近行ったいくつかのプロジェクトの変更では、厳密な名前のアセンブリ "Microsoft.Practices.CompositeUI" は必要ありません。すべてのソリューション プロジェクトが実際に署名されていないアセンブリを参照していることを確認した後、依存関係ブラウザーを起動して、何も不足していないことを確認しました。すべてがチェックアウトされ、古いアセンブリへの「古い」参照がないことを確認しました。もちろん、プロジェクトもクリーンアップして再構築しました。
次に、さらに調査し、フュージョン ログ ビューアー (Fuslogvw.exe) を起動して、バインド エラーを表示するように構成しました。ログを確認したところ、バインディング エラーが見つかりました。詳細ログは混乱の始まりです。「呼び出し元のアセンブリ」は、欠落しているアセンブリへのバインドがない (私が判断できる) アセンブリとしてリストされています。ああ、説明するのは難しいです。ログは次のとおりです。
* アセンブリ バインダー ログ エントリ (11/15/2010 @ 7:00:18 PM) *
操作に失敗しました。
バインド結果: hr = 0x80131040。説明はありません。
アセンブリ マネージャーの読み込み元: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll 実行可能ファイル C:\Program Files\PMT\Office App\1.1.1.7\OfficeApp.exe の下で実行
--- 詳細なエラー ログが続きます。
=== プレバインド状態情報 ===
ログ: ユーザー = PMD\sklett
ログ: DisplayName = Microsoft.Practices.CompositeUI、バージョン = 1.0.51205.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35 (完全指定)
ログ: Appbase = file:///C:/Program Files/PMT/Office App/1.1.1.7/
ログ: 初期 PrivatePath = NULL
ログ: 動的ベース = NULL
ログ: キャッシュ ベース = NULL
ログ: AppName = OfficeApp.exe
アセンブリの呼び出し: Microsoft.Practices.EnterpriseLibrary.Common、Version=4.1.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35。
===
ログ: このバインドはデフォルトのロード コンテキストで開始されます。
ログ: アプリケーション構成ファイルの使用: C:\Program Files\PMT\Office App\1.1.1.7\OfficeApp.exe.config
ログ: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config のマシン構成ファイルを使用しています。
ログ: ポリシー後の参照: Microsoft.Practices.CompositeUI、Version=1.0.51205.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35
ログ: GAC ルックアップに失敗しました。
ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/PMT/Office App/1.1.1.7/Microsoft.Practices.CompositeUI.DLL。
ログ: アセンブリのダウンロードは成功しました。ファイルのセットアップを試みています: C:\Program Files\PMT\Office App\1.1.1.7\Microsoft.Practices.CompositeUI.dll
LOG: run-from-source セットアップ フェーズに入ります。
ログ: アセンブリ名: Microsoft.Practices.CompositeUI、Version=1.0.51205.0、Culture=neutral、PublicKeyToken=null
WRN: アセンブリ名を比較すると、不一致が発生しました: PUBLIC KEY TOKEN
ERR: アセンブリ参照が見つかったアセンブリ定義と一致しませんでした。
ERR: アセンブリのセットアップを完了できませんでした (hr = 0x80131040)。プローブが終了しました。
現在、呼び出し元のアセンブリ "Microsoft.Practices.EnterpriseLibrary.Common" には、"Microsoft.Practices.CompositeUI" への依存関係が (依存関係ブラウザーを介して) リストされていません。それだけではありません。
フュージョン ログが私の足を止めました。フュージョン ログが混乱を引き起こしました! ;0)
うまくいけば、賢明な専門家が私が欠けているものを手がかりにするのに十分な情報を提供したことを願っています.