2

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

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

4

2 回答 2

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® .NE​​T Framework

于 2013-10-26T15:31:11.723 回答
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)));
于 2013-10-26T15:25:33.420 回答