2008-10-02 1 views
3

Dans .NET existe-t-il un moyen d'activer le suivi Assembly.Load? Je sais qu'en courant sous le débogueur il vous donne un bon message comme "Loaded 'assembly X" mais je veux obtenir un journal des charges d'assemblage de mon application en cours en dehors du débogueur, de préférence mélangé avec mes messages de débogage/trace.Dans .NET existe-t-il un moyen d'activer le suivi Assembly.Load?

Je suis en train de tracer différentes choses dans mon application et je veux essentiellement savoir quelle action a déclenché un assemblage particulier à charger.

Répondre

13

Obtenez l'AppDomain pour votre application et attachez-le à l'événement AssemblyLoad.

Exemple (C#):

AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(OnAssemblyLoad); 
4

Fusion Log Viewer est votre ami.

[modifier] En fait, cela pourrait être trop sur le dessus, l'événement AssemblyResolve est bon aussi [modifier]

+0

Je préfère utiliser FusLogView parce que je n'ai pas besoin de modifier mon code si je diagnostique juste quelques problèmes de charge d'assemblage. –

+0

Ceci est bon pour les diagnostics généraux, mais pour mon scénario particulier, je pense que l'événement AssemblyLoad va me trouver là où je dois être. –

+0

Soyez prévenu, il pourrait se comporter différemment sur Mono :) – leppie

2

MS Visual Studio a cette fonctionnalité intégrée.

Sélectionnez « Messages de charge du module » de la menu contextuel de la fenêtre de sortie dans MS Visual Studio et il affichera quelque chose comme:

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' 
Questions connexes