.NETでは、Assembly.Loadトレースを有効にする方法はありますか?

StackOverflow https://stackoverflow.com/questions/161030

  •  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'
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top