【问题标题】:How do you ignore .NET assemblies in NDepend?您如何忽略 NDepend 中的 .NET 程序集?
【发布时间】:2014-01-05 18:33:13
【问题描述】:

背景

随着时间的推移,我发现自己越来越多地转向 NDepend 以深入了解遗留应用程序的设计/实施。

问题

除了将JustMyCode 添加到 CQL 查询之外,有没有办法永久配置 NDepend(在项目级别)以简单地忽略 .NET Framework?我可能是错的,但我很确定 NDepend v3 支持此功能。

示例

  1. 在 Visual Studio 中打开您的解决方案并单击重建
  2. 根据您的解决方案文件 (*.sln) 创建一个 NDepend 项目
  3. 运行分析
  4. 打开交互式(非 HTML)依赖关系图
  5. 点击左上角的重置箭头(提示:回收图标)
  6. 单击仅重置为应用程序程序集
  7. 观察
    • 您将不再看到对 .Net 框架的引用(注意:蓝色字体已消失)
  8. 右键单击您的一个程序集:选择类型
  9. 点击我直接使用的
  10. 以下 CQL 将出现在查询窗口中:
    • from t in Types where t.IsUsedBy ("MyCompany.MyProduct.MyAssemblyName") select new { t, t.NbILInstructions }
  11. 观察
    • 现在您很可能会在查询结果窗口中看到 .NET Framework 引用(注意:蓝色字迹又回来了)
    • 将 JustMyCode 添加到 CQL 查询中,.NET 引用再次消失:from t in JustMyCode.Types where t.IsUsedBy ("MyCompany.MyProduct.MyAssemblyName") select new { t, t.NbILInstructions }

上下文

  • 应用程序:NDepend 版本 4.1.0.6871
  • 查看:依赖关系图

【问题讨论】:

    标签: ndepend


    【解决方案1】:

    忽略 .NET 程序集的唯一两种方法是:

    • 如您所写,使用notmycode/JustMyCode
    • 项目属性>要分析的代码面板中删除程序集。

    【讨论】:

    • 感谢您的反馈。您似乎无法从 NDepend v4 中的 要分析的代码 => 第三方程序集 列表中删除程序集(其中包括诸如 System.Data 之类的 .NET 引用)。这是正确的吗?
    • 哎呀,我没明白你只关心第三方程序集。实际上,第三方程序集是从应用程序程序集自动推断出来的。在 v5 中,我们添加了仅获取​​应用程序程序集(或仅应用程序命名空间)的图形或矩阵的可能性。在 v4 中,这是可能的,但您必须为此编写代码查询(消除第三方程序集),然后将结果导出到图形或矩阵。
    • 澄清一下:我关心应用程序程序集。这就是为什么我试图找到一种方法来永久忽略 Microsoft 的 .NET Framework。我现在看到我要么必须在 CQL 中使用 JustMyCode,要么升级到 NDepend 5。谢谢帕特里克的帮助。
    • 抱歉,这个答案对于刚接触 NDepend 的人来说太可怕了。你把这个“notmycode/JustMyCode”代码放在哪里?在某些规则中?在一般规则中?您不能像@Pressacco 在 NDepend 6 中所说的那样“删除程序集”。我只想分析我的代码,而不是所有第三方程序集。
    • 我猜你点击了 notmycode/JustMyCode ndepend.com/docs/cqlinq-syntax#NotMyCode 的链接,哪一点不清楚?与前缀为 notmycode 的代码查询匹配的所有代码元素都将从 JustMyCode(键入为 ICodeBaseView)中丢弃。因此,您可以使用 notmycode 查询轻松消除一些程序集,这些程序集将不再被 JustMyCode 代码库视图枚举。是不是更清楚了?如果没有,请提出具体问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多