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

时间:2013-10-26 15:16:32

标签: c# .net .net-assembly appdomain

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

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

2 个答案:

答案 0 :(得分:3)

        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®.NETFramework

答案 1 :(得分:1)

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)));