No .NET existe uma maneira de permitir Assembly.Load traçado?
-
03-07-2019 - |
Pergunta
No .NET existe uma maneira de permitir Assembly.Load traçado? Eu sei que durante a execução sob o depurador dá-lhe uma bela mensagem como "carregado 'de montagem X'" mas eu quero obter um log das cargas de montagem da minha aplicação rodando fora do depurador, de preferência misturados com minhas mensagens de log Debug / rastreamento.
Eu estou traçando várias coisas na minha candidatura e eu, basicamente, quer saber o que ação desencadeou uma assembléia especial a ser carregado.
Solução
Obter o AppDomain para a sua aplicação e anexar ao evento AssemblyLoad.
Exemplo (C #):
AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(OnAssemblyLoad);
Outras dicas
Fusão Log Viewer é seu amigo.
[editar] Na verdade, isso pode ser muito mais alto, o evento AssemblyResolve é muito bom [editar]
MS Visual Studio possui essa funcionalidade incorporada.
Selecionar 'load module Mensagens' no menu de contexto da janela de saída em MS Visual Studio e ele irá exibir algo como:
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'