如何在 AppDomain 中获取所有非 .NET 框架程序集

本文关键字:NET 框架 程序集 获取 AppDomain | 更新日期: 2023-09-27 18:36:55

我正在尝试查找当前AppDomain中的所有程序集,这些程序集不是.NET框架的一部分(这意味着它们要么是我自己的库,要么是第三方库)。

有没有比将所有 .NET Framework 的程序集名称硬编码到我的代码并从AppDomain.CurrentDomain.GetAssemblies()中查找与其中任何一个都不匹配的所有程序集更简单的方法呢?

如何在 AppDomain 中获取所有非 .NET 框架程序集

        Assembly a = Assembly.GetAssembly(typeof(Task));
        CustomAttributeData attributeData = a.CustomAttributes.First(attribute => attribute.AttributeType == typeof(AssemblyProductAttribute));
        string value = attributeData.ConstructorArguments[0].Value as string;

该值将Microsoft.NET® Framework

String[] dotNetPaths=new string[]{"/Windows/Microsoft.Net/assembly/","/Windows/Microsoft.NET/Framework/"};
var otherAssemblies=AppDomain.CurrentDomain
                             .GetAssemblies()
                             .Where(x=>!dotNetPaths.Any(y=>x.CodeBase.Contains(y)));