2008-08-21 39 views
8

如何確定我的.NET桌面應用程序已加載的所有程序集?我想將它們放在關於盒子的位置,以便我可以通過電話查詢客戶,以確定他們在PC上的XYZ版本。確定加載的程序集

很高興看到託管和非託管程序集。我意識到名單會變長,但我打算對它進行增量搜索。

回答

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

貌似AppDomain.CurrentDomain.GetAssemblies();會做的伎倆:)

2

要麼,System.Reflection.Assembly.GetLoadedModules()。

請注意,AppDomain.GetAssemblies將只遍歷當前 AppDomain中的程序集。應用程序可能有多個AppDomain,因此可能會或可能不會做你想要的。

1

PowerShell的版本:

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

庫里歐! +1 – 2016-10-28 17:13:08