从Depend获取依赖列表

我正在使用NDepend来帮助管理一个项目,并且我刚刚被要求根据直接和间接使用给定程序集的内容得到一个有序的依赖列表(针对不同解决方案的构建排序)。

NDepend提供了一种很好的方式来查找那些依赖于该程序集的模块,但没有办法按照我想要的方式对它进行排序。 比如我可以跑步

from a in Assemblies 
let depth0 = a.DepthOfIsUsing("Assembly1".MatchAssembly())
where depth0  >= 0 orderby depth0
select new { a, depth0 }

那会给我一个这样的名单

Assembly1 0
Assembly2 1
Assembly3 1
Assembly4 2

这基本上意味着Assembly2和Assembly3对Assembly1有直接的依赖关系,而Assembly4对Assembly2或Assembly3有依赖性。

我的问题存在,因为Assembly3依赖于Assembly1 Assembly2。 如果Assembly4只依赖Assembly 2,我想看到这样的列表:

Assembly1 0
Assembly2 1
Assembly3 2
Assembly4 2

如果Assembly4也依赖于Assembly3,那么列表应该如下所示:

Assembly1 0
Assembly2 1
Assembly3 2
Assembly4 3

现在我可以将原始列表导出为依赖关系图并水平查看,并自己手动填写依赖项列表,但实际上在我的层次结构中有123个程序集,这是一个很糟糕的工作,特别是当我有其他之后要做的处理(我知道的东西不能用NDepend实现),所以我宁愿在CQL中找到一种方法。

任何有忍者NDepend技能的人都知道我能做到这一点吗?

谢谢。

链接地址: http://www.djcxy.com/p/6437.html

上一篇: Get Dependency List from Depend

下一篇: How do you ignore .NET assemblies in NDepend?