背景:
SQL Server 2012 Data Tools と Visual Studio 2010 および 2012 がインストールされた Windows 7。
Visual Studio で新しい SSIS プロジェクトを作成しようとすると、次のエラーが発生します。
これは、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
[設定] ボタンから [すべてのバインドをディスクに記録する] を有効にして、ログ記録を有効にすることができます。
ログ記録が有効になったら、エラーを作成し、「更新」をクリックして、読み込まれたすべてのアセンブリを表示します。