エラーの原因となっている dll を見つけるにはどうすればよいですか?

エラーの原因となっている dll を見つけるにはどうすればよいですか?

背景:

SQL Server 2012 Data Tools と Visual Studio 2010 および 2012 がインストールされた Windows 7。

Visual Studio で新しい SSIS プロジェクトを作成しようとすると、次のエラーが発生します。

Microsoft.DataTransformationServices.Project.SharedIcons の型初期化子が例外をスローしました これは、C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies 内の不正な dll が原因であることはほぼ間違いありません。

質問: 実行時にアプリケーションによってどの dll がロードされているかを追跡する方法はありますか?

私も試しました:

C:>tasklist /m /fi "イメージ名 eq devenv.exe "

しかし、あまり役に立たない結果しか得られません。

Image Name                     PID Modules
========================= ======== ============================================
devenv.exe                    2784 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll
devenv.exe                    6836 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll

また、これは Visual Studio の問題ではなく、VS をシェルとして使用する SSDT-BI の問題であることは承知していますが、SSDT-BI には SU タグがありません。

答え1

このブログ投稿スコット・ハンセルマンの論文には、アセンブリのロードエラーをデバッグするためのいくつかのテクニックが紹介されています。フュージョンログアプローチまたはプロセスエクスプローラーアプローチ。

Visual Studio がインストールされている場合は、アセンブリ バインディング ログ ビューアー (Fusion ログ ビューアー) をインストールする必要があります。これは、Windows SDK の一部としてインストールされます。私のマシンでは、パスは次のとおりです。c:\program files (x86)\microsoft sdks\windows\v8.0a\bin\NETFX 4.0 Tools\FUSLOGVW.exe [設定] ボタンから [すべてのバインドをディスクに記録する] を有効にして、ログ記録を有効にすることができます。

ログ記録が有効になったら、エラーを作成し、「更新」をクリックして、読み込まれたすべてのアセンブリを表示します。

関連情報