在针对.NET Framework 4的“普通” .NET程序集中,我可以使用AppDomain.CurrentDomain.GetAssemblies()
来获取所有已加载程序集的列表。
如何在Windows通用应用程序或CoreCLR应用程序上执行此操作?
在针对.NET Framework 4的“普通” .NET程序集中,我可以使用AppDomain.CurrentDomain.GetAssemblies()
来获取所有已加载程序集的列表。
如何在Windows通用应用程序或CoreCLR应用程序上执行此操作?
要达到您想要的效果,一种方法是获取位于应用程序安装文件夹中的DLLs/程序集(可以假设在某些情况下正在您的应用程序中使用/加载)。
public static async Task<List<Assembly>> GetAssemblyList()
{
List<Assembly> assemblies = new List<Assembly>();
var files = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFilesAsync();
if (files == null)
return assemblies;
foreach (var file in files.Where(file => file.FileType == ".dll" || file.FileType == ".exe"))
{
try
{
assemblies.Add(Assembly.Load(new AssemblyName(file.DisplayName)));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
return assemblies;
}
foreach (var assembly in GetAssemblyList().Result)
{
//Do something with it
}
var assembly = this.GetType().GetTypeInfo().Assembly;
AppDomain.CurrentDomain.GetAssemblies()
。