0

我需要获取 EXE 或 DLL 文件中使用的引用程序集列表。我一直在寻找 NDepend 作为通过其控制台执行此操作的选项,因此我可以为此提供编程解决方案。

据我所知,NDepend 从 Visual Studio 项目中读取依赖项,但我不知道是否可以告诉 NDepend 分析 DLL 并读取其引用的程序集。

任何人都知道是否可以使用 NDepend 来做到这一点?如果没有,我可以使用另一种工具或机制来实现这一目标吗?

谢谢,如果您需要任何额外的细节,请告诉我。

4

2 回答 2

1

无论您需要依赖图依赖矩阵还是需要这些程序集依赖,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 查询,并以方便的方式获取程序集依赖项的格式:

使用 NDepend 组装依赖项

于 2013-08-20T13:52:06.297 回答
1
于 2013-08-19T19:58:20.333 回答