使用NDepend获取DLL或EXE依赖关系
我需要获取EXE或DLL文件中使用的引用程序集列表。 我正在寻找NDepend作为通过它的控制台执行它的一个选项,所以我可以通过编程方式解决这个问题。
据我所知,NDepend从Visual Studio项目读取依赖项,但我不知道是否可以告诉NDepend分析DLL并读取其引用的程序集。
任何人都知道是否可以用NDepend来做到这一点? 如果没有,我可以使用另一种工具或机制来实现这个目标?
谢谢,让我知道你是否需要任何额外的细节。
无论您是否需要依赖关系图,依赖关系矩阵,或者您是否需要程序化这些程序集依赖关系,NDepend都可以为您做到这一点。
所以我可以通过编程方式解决这个问题。
要以编程方式获得程序集依赖关系,您需要使用NDepend.API。 这是NDepend.API入门文档。 一旦你在内存中获得了ICodeBase对象,下面是如何通过C#LINQ查询获取程序集依赖关系,例如:
from a in codeBase.Application.Assemblies
where a.AssembliesUsed.Count() >= 0
orderby a.AssembliesUsed.Count() descending
select new {
a,
a.AssembliesUsed,
a.AssembliesUsingMe
}
请注意, a.AssembliesUsed
是一个包含应用程序和第三方程序集的IEnumerable <IAssembly>。 限制a.AssembliesUsed
仅用于使用的应用程序集,您可以将其重写为assembliesUsed = a.AssembliesUsed.Where(a1 => !a1.IsThirdParty)
。
另外,由于NDepend API可以通过编译和执行的C#LINQ查询来实现,因此可以在Visual Studio中的NDepend查询编辑器中运行以前的C#LINQ查询,并以便捷的方式获取程序集依赖关系:
链接地址: http://www.djcxy.com/p/37701.html