How can I determine all of the assemblies that my .NET desktop application has loaded? I'd like to put them in the about box so I can query customers over the phone to determine what version of XYZ they have on their PC.
It would be nice to see both managed and unmanaged assemblies. I realize the list will get long but I plan to slap an incremental search on it.
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);
}
}
}
PowerShell Version:
[System.AppDomain]::CurrentDomain.GetAssemblies()
Either that, or System.Reflection.Assembly.GetLoadedModules().
Note that AppDomain.GetAssemblies will only iterate assemblies in the current AppDomain. It's possible for an application to have more than one AppDomain, so that may or may not do what you want.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With