如何重新定义NDepend查询的应用程序域?

题:
在分析大量可部署的程序集时,有没有办法控制NDepend如何定义“应用程序”域? 或者,我可以指定JustMyCode的依赖矩阵和图形?

背景:
我试图确定我公司所有产品的所有第三方依赖关系。

在一个地方获取所有二进制文件的最简单方法是从测试服务器复制所有程序集(而不是试图为所有150多个单独的可部署应用程序提供源代码)。

这意味着尽管所有第三方(即nuget)依赖关系似乎都被NDepend包含在预定义的“应用程序”域中。 ThirdParty域只包含框架程序集。

我定义了一个查询来标识我认为是应用程序代码的所有程序集(即,其中的a.Name.Contains(“MyCompanyName”)),但我没有看到使用该查询来细化NDepend应用程序域的方法。 我用这个查询来改变JustMyCode域,但似乎没有为依赖矩阵或图指定JustMyCode的选项。

我可以在项目属性中看到将组件从第三方移动到应用程序,但似乎没有将程序集从应用程序移动到第三方的选项...?

我对NDepend相当陌生 - 理想情况下,我希望能够看到/定义以下域:

  • 框架(即.net框架库)
  • ThirdParty(包括Microsoft。* libs)
  • 应用
  • JustMyCode
  • 另外我想假设我是否正在分析一个解决方案,NDepend会认为所有nuget包都是ThirdParty?


    实际上,在定义NDepend项目时,您不需要引用全部(即应用程序+第三方)程序集。 只需引用应用程序集就足够了,NDepend有一个启发式的方法来自动确定从应用程序集中消耗的第三方程序集。

    此外,为了更容易地匹配存储在文件夹层次结构中的应用程序程序集的范围,可以使用文件夹+递归子文件夹中的添加.NET程序集+按名称筛选。

    N按名称过滤应用程序组合件

    一旦您的NDepend项目被填充了应用程序程序集,为了得到应用程序程序集的子集的依赖关系矩阵或图形,您可以编写与此子集匹配的代码查询,并将匹配的程序集导出到图或矩阵中:

    将NDepend程序集导出到图或相关矩阵

    另外我想假设我是否正在分析一个解决方案,NDepend会认为所有nuget包都是ThirdParty?

    是的,因为第三方程序集可以通过所提到的启发式找到。

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

    上一篇: How do I redefine the Application domain for NDepend queries?

    下一篇: Get Dependency List from Depend