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.

È stato utile?

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'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top