.NETでは、Assembly.Loadトレースを有効にする方法はありますか?
-
03-07-2019 - |
質問
.NETでは、Assembly.Loadトレースを有効にする方法はありますか?デバッガーで実行しているときに、「Loaded 'assembly X'」のような素敵なメッセージが表示されることは知っています。しかし、実行中のアプリケーションのアセンブリロードのログをデバッガーの外部で取得したいので、できればデバッグ/トレースログメッセージと混ぜてください。
アプリケーション内のさまざまなものをトレースしています。基本的に、どのアクションが特定のアセンブリのロードをトリガーしたかを知りたいです。
解決
アプリケーションのAppDomainを取得し、AssemblyLoadイベントにアタッチします。
例(C#):
AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(OnAssemblyLoad);
他のヒント
Fusion Log Viewerはあなたの友達です。
[編集]実際にはこれはあまりにも上すぎるかもしれません。AssemblyResolveイベントも良いです[編集]
MS Visual Studioにはこの機能が組み込まれています。
MS Visual Studioの出力ウィンドウのコンテキストメニューから[モジュールロードメッセージ]を選択すると、次のように表示されます。
Loaded 'C:\Windows\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'
Loaded 'C:\projects\trunk\bin\Tester.exe', Symbols loaded.
Loaded 'C:\projects\trunk\bin\log4net.dll'
所属していません StackOverflow