In .NET esiste un modo per abilitare la traccia Assembly.Load?
-
03-07-2019 - |
Domanda
In .NET esiste un modo per abilitare la traccia Assembly.Load? So che mentre esegui il debugger ti dà un bel messaggio come " Loaded 'assembly X' " ma voglio ottenere un registro dei carichi di assemblaggio della mia applicazione in esecuzione all'esterno del debugger, preferibilmente mescolato con i miei messaggi di registro Debug / Trace.
Sto tracciando varie cose nella mia applicazione e sostanzialmente voglio sapere quale azione ha innescato un determinato assembly da caricare.
Soluzione
Ottieni AppDomain per la tua applicazione e allega all'evento AssemblyLoad.
Esempio (C #):
AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(OnAssemblyLoad);
Altri suggerimenti
Fusion Log Viewer è tuo amico.
[modifica] In realtà questo potrebbe essere troppo esagerato, anche l'evento AssemblyResolve è buono [modifica]
MS Visual Studio ha questa funzionalità integrata.
Seleziona 'Module Load Messages' dal menu contestuale della finestra di output in MS Visual Studio e visualizzerà qualcosa del tipo:
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'