我正在尝试查找当前AppDomain中的所有程序集,这些程序集不是.NET框架的一部分(这意味着它们是我自己的库或第三方库)。
有没有比将所有.NET Framework的程序集名称硬编码到我的代码并从AppDomain.CurrentDomain.GetAssemblies()
查找与其中任何一个都不匹配的所有程序集更简单的方法呢?
答案 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)));