Есть ли в .NET способ включить трассировку Assembly.Load?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

Есть ли в .NET способ включить трассировку Assembly.Load?Я знаю, что при работе под отладчиком выдается хорошее сообщение типа «Загружена сборка X», но я хочу получить журнал загрузок сборок моего работающего приложения вне отладчика, желательно смешанный с моими сообщениями журнала отладки/трассировки.

Я отслеживаю различные вещи в своем приложении и в основном хочу знать, какое действие вызвало загрузку определенной сборки.

Это было полезно?

Решение

Получите AppDomain для своего приложения и прикрепите его к событию AssemblyLoad.

Пример (С#):

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