如何获得我的C#项目之间的依赖关系图

Roh*_*ith 8 .net c# dependencies visualization csproj

我有一个相当复杂的应用程序,它已被分解为多个组件.每个组件都有一个包含大量项目的解决方案文件.所以我喜欢把它想象成一个组件中有多个项目/ dll.还有一个"共同"组件.所有其他组件都依赖于"共同".所以编译是这样的: "nant component1.compile"将编译"common"然后编译component1,因为component1依赖于"common".随着时间的推移,"共同"变得相当大.我很确定它可以分成几个较小的组件.然后组件需要仅依赖于这些较小的,破碎的"共同"中的一些.这有望减少不同组件的编译时间.

所以问题:我想要显示应用程序中所有不同项目之间的依赖关系,同时标记项目所属的组件.你会怎么做?

Pat*_*eam 1

NDepend工具提出了一个与依赖矩阵相结合的依赖图。默认情况下,您将获得 .NET 程序集的依赖关系图,并且它不限于仅一个 VS 解决方案的程序集。NDepend 集成在 VS 2017、2015、2013、2012、2010 中,它可以在代码上显示任何类型的图表,包括:

  • 程序集之间的依赖关系
  • 方法调用图,
  • VS 项目内命名空间的依赖关系,
  • 命名空间内类型的依赖关系,
  • 类继承图,
  • 表示两个组件之间的类耦合的图

ETC...

这一切都解释在这里

NDepend 代码图依赖关系图

NDepend 还提出了依赖结构矩阵 (DSM)以及使用 C# LINQ 查询来查询依赖关系的方法。