L'outil depends.exe peut parcourir toutes les dll dont dépend l'exécutable, mais si la DLL est chargée dynamiquement par la classe Assembly lors de l'exécution, comment puis-je voir la DLL déjà chargée DLL (assemblages)?Application C#: comment afficher les assemblys chargés
Répondre
Comme un instantané:
AppDomain.CurrentDomain.GetAssemblies()
Comme ils se produisent:
AppDomain.CurrentDomain.AssemblyLoad
Quelque chose comme:
static void Main()
{
AppDomain.CurrentDomain.AssemblyLoad += AssemblyLoad;
LogCurrent("before");
AnotherMethod();
LogCurrent("after");
}
static void AnotherMethod()
{
// to force stuff to happen
new System.Data.SqlClient.SqlCommand().Dispose();
}
static void LogCurrent(string caption)
{
foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
{
Console.WriteLine(caption + ": " + asm.FullName);
}
}
static void AssemblyLoad(object sender, AssemblyLoadEventArgs args)
{
Console.WriteLine("Loaded: " + args.LoadedAssembly.FullName);
}
Merci. Mais ce que je veux, c'est un outil externe comme depends.exe pour voir les assemblys chargés. –
S'il charge la DLL à l'exécution, alors il pourrait obtenir la chaîne de n'importe où. La seule façon de le surveiller est * at * runtime. Vous pouvez utiliser windbg/sos, et attacher au processus? –
WinDbg doit être le moyen le plus pratique. Vous pouvez simplement utiliser "lm" pour lister tous les modules, natifs et gérés. –
En supposant que vous n'êtes pas déconner avec AppDomains:
AppDomain.CurrentDomain.GetAssemblies();
Vous dites que vous recherchez un outil externe? Essayez WinDbg avec l'extension de débogage SOS; http://msdn.microsoft.com/en-us/library/bb190764.aspx.
D'autres outils peuvent être plus faciles à utiliser et offrent le même niveau de détail. Je pense que les gars de JetBrains ont un (ReSharper)
fuslogw peut aider à cela, il a une option pour surveiller toutes les liaisons d'assemblage http://msdn.microsoft.com/en-us/library/e74a18c4(VS.71).aspx
- 1. Déterminer les assemblys chargés
- 2. Puis-je correctement déboguer les assemblys chargés avec l'événement 'AssemblyResolve'?
- 3. Utilisation de ClickOnce avec des assemblys chargés dynamiquement
- 4. Protection de code avec des assemblys chargés (.NET)
- 5. Comment afficher le formulaire principal une fois les contrôles chargés
- 6. ASP.Net, les assemblys référencés ne sont pas chargés par IIS dans AppDomain
- 7. Surveiller la fréquence à laquelle les assemblys sont chargés à partir de GAC
- 8. Assemblages mystérieusement chargés dans les nouveaux AppDomains
- 9. .NET/Sécurité: Limitation des assemblys chargés à l'exécution pour accéder à certaines API
- 10. Comment identifier les assemblys core .NET Framework?
- 11. Comment afficher les données d'Access sur C#?
- 12. Comment une application de console .NET recherche-t-elle les assemblys référencés?
- 13. NDepend: Comment ne pas afficher les assemblys 'tier' dans le graphe de dépendances?
- 14. Planificateur .NET qui exécute les assemblys?
- 15. Déterminer tous les assemblys référencés
- 16. Déploiement d'une application .Net utilisant des assemblys Sharepoint
- 17. Comment référencer les assemblys .NET à l'aide de PowerShell
- 18. asp.net application mvc - charger/remplacer les vues, les contrôleurs, les fichiers JS des assemblys de plugins
- 19. Comment ajouter aux types initialement chargés dans PowerShell?
- 20. Comment afficher une application dans Application Loader?
- 21. Liste de tous les assemblys .NET disponibles
- 22. Webservices ASP.NET dans les assemblys partagés (DLL)
- 23. Comment pré-charger tous les assemblys déployés pour un AppDomain
- 24. Comment utiliser les assemblys de contrôle de carte dans une application sans l'installer?
- 25. Comment obtenir une liste des assemblys en C#?
- 26. Comment modifier/afficher les permissions en C
- 27. Comment afficher les caractères arbitraires dans c?
- 28. Comment afficher les nombres premiers en C#
- 29. Comment trouver tous les formulaires chargés dans une application Winform .net compact framework?
- 30. Comment énumérer des assemblys dans AggregateCatalog ou DirectoryCatalog dans MEF?
(a répondu à un commentaire) –