Vra

Hoe kan ek al die gemeentes wat my NET lessenaar aansoek gelaai bepaal? Ek wil graag om hulle te sit in die oor boks, sodat ek kan kliënte navraag oor die telefoon om te bepaal watter weergawe van XYZ hulle op hul rekenaar.

Dit sal lekker wees om beide bestuur en onbeheerde gemeentes sien. Ek besef die lys sal lank te kry, maar ek beplan om 'n inkrementele soek klap op dit.

Was dit nuttig?

Oplossing

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);
    }
  }
}

Ander wenke

Óf dat of System.Reflection.Assembly.GetLoadedModules ().

Let daarop dat AppDomain.GetAssemblies net gemeentes in die huidige AppDomain sal herhaal. Dit is moontlik vir 'n aansoek om meer as een AppDomain het, sodat mag of nie mag nie doen wat jy wil.

PowerShell Weergawe:

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

Dit lyk asof AppDomain.CurrentDomain.GetAssemblies(); sal die truuk doen:)

Vir al DLLs insluitend onbeheerde, jy kan EnumProcessModules pinvoke om die module handvatsels kry en dan gebruik GetModuleFileName vir elke handvatsel om die naam te kry.

http://pinvoke.net/default.aspx/psapi.EnumProcessModules en http://msdn.microsoft.com/en -us / library / ms683197 (VS.85) Aspx (pinvoke.net nie die handtekening vir hierdie, maar dit is maklik om uit te vind).

Vir 64 bit moet jy EnumProcessModulesEx gebruik

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top