我需要获取EXE或DLL文件中使用的引用程序集的列表。我把NDepend看作是通过它的控制台执行它的一个选项,这样我就可以有一个编程的解决方案了。
据我所知,NDepend从Visual项目中读取依赖项,但我不知道是否可以告诉NDepend对DLL进行分析并读取其引用的程序集。
有人知道用NDepend是否有可能做到这一点吗?如果没有,我还可以使用另一个工具或机制来实现这一点吗?
谢谢,如果你需要更多的细节,请告诉我。
发布于 2013-08-19 19:58:20
发布于 2013-08-20 13:52:06
无论您是否需要相依图、依赖矩阵,或者如果您需要这些程序集,以编程方式依赖NDepend都可以为您做到这一点。
所以我可以有一个程序解决方案。
要以编程方式获取程序集依赖项,您需要使用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](http://www.ndepend.com/API/webframe.html?NDepend.API~NDepend.CodeModel.IAssembly.html)。若要将a.AssembliesUsed限制为只使用应用程序集,则可以重写它assembliesUsed = a.AssembliesUsed.Where(a1 => !a1.IsThirdParty)。
此外,由于NDepend API可以从C# LINQ查询中实时编译和执行,因此可以在Visual中的NDepend查询编辑器中运行以前的C# LINQ查询,并以方便的方式获得程序集依赖项:

https://stackoverflow.com/questions/18321581
复制相似问题