2008-08-21 6 views
8

Comment puis-je déterminer tous les assemblys chargés par mon application de bureau .NET? Je voudrais les mettre dans la boîte à propos de afin que je puisse interroger les clients par téléphone pour déterminer quelle version de XYZ ils ont sur leur PC.Déterminer les assemblys chargés

Ce serait bien de voir les assemblages gérés et non gérés. Je me rends compte que la liste sera longue mais je prévois de lancer une recherche incrémentale.

Répondre

12
using System; 
using System.Reflection; 
using System.Windows.Forms; 

public class MyAppDomain 
{ 
    public static void Main(string[] args) 
    { 
    AppDomain ad = AppDomain.CurrentDomain; 
    Assembly[] loadedAssemblies = ad.GetAssemblies(); 

    Console.WriteLine("Here are the assemblies loaded in this appdomain\n"); 
    foreach(Assembly a in loadedAssemblies) 
    { 
     Console.WriteLine(a.FullName); 
    } 
    } 
} 
0

On dirait AppDomain.CurrentDomain.GetAssemblies(); fera l'affaire :)

2

Soit ça, ou System.Reflection.Assembly.GetLoadedModules().

Notez que AppDomain.GetAssemblies itera uniquement les assemblages dans le domaine d'application actuel. Il est possible qu'une application possède plusieurs AppDomain, ce qui peut ou ne peut pas faire ce que vous voulez.

1

PowerShell Version:

[System.AppDomain]::CurrentDomain.GetAssemblies() 
+0

Coolio! +1 pour ça –

Questions connexes