获取UAP10平台上已加载的装配的列表 [英] Get list of loaded Assemblies on UAP10 platform

查看:90
本文介绍了获取UAP10平台上已加载的装配的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在面向.NET Framework 4的普通" .NET程序集上,我可以使用AppDomain.CurrentDomain.GetAssemblies()来获取所有已加载程序集的列表.

On "normal" .NET assemblies targeting .NET Framework 4, I can use AppDomain.CurrentDomain.GetAssemblies() to get a list of all loaded assemblies.

如何在Windows通用应用程序或CoreCLR应用程序上执行此操作?

How to do this on a Windows Universal App or on a CoreCLR application?

推荐答案

一种可以做您想做的事情的方法是获取位于应用程序安装文件夹中的DLL/程序集(可以在其中假定).在某些情况下正在您的应用中使用/加载).

One way to kinda do what you want is to get the DLLs/assemblies which is located in the folder in which your app is installed (which one can assume in some cases is being used/loaded in your app).

    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
}

此reddit线程/用户.

这篇关于获取UAP10平台上已加载的装配的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆