2008-08-21 24 views
8

¿Cómo puedo determinar todos los ensamblajes que mi aplicación de escritorio .NET ha cargado? Me gustaría ponerlos en el cuadro de información para que pueda consultar a los clientes por teléfono para determinar qué versión de XYZ tienen en su PC.Determine los ensamblados cargados

Sería bueno ver asambleas administradas y no administradas. Me doy cuenta de que la lista será larga, pero planeo darle una búsqueda incremental.

Respuesta

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

Parece que AppDomain.CurrentDomain.GetAssemblies(); hará el truco :)

2

O eso, o System.Reflection.Assembly.GetLoadedModules().

Tenga en cuenta que AppDomain.GetAssemblies solo repetirá los ensamblados en el actual AppDomain. Es posible que una aplicación tenga más de un dominio de aplicación, por lo que puede o no hacer lo que quiera.

1

PowerShell Versión:

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

Coolio! +1 para eso –

Cuestiones relacionadas