代码分析规则集的层次结构?

Hierarchy of code analysis rulesets?

我有一个解决方案包含两个 MVC 5 Web 应用程序和关联的 class 库,代码分析设置导致构建挂起。如果我在这段时间内尝试与 UI 互动,我会得到 "VS is busy" 气泡。让构建在一夜之间完成也不起作用。

为了解决这个问题,我关闭了所有项目的代码分析,项目构建得很好 [0]。因此,我在其中一个 MVC 项目上启用了 "Microsoft All Rules",但构建过程没有完成。

"Microsoft Managed Minimum Rules" 构建,但我现在想要的是有某种结构化的方式来遍历规则集,我尝试的下一个规则集是上一个成功规则集的超集。这样的层次结构是否存在,如果存在,是否有规范的参考文献?

一旦达到该级别,我就可以开始隔离各个规则,也许可以通过增加构建输出的冗长程度...

[0]
此语句不应解释为 "Building without code analysis is perfectly okay"

一般层次结构通过位于 Visual Studio 安装目录下的 .ruleset 文件中的 Include 元素公开(例如:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\Rule Sets 用于典型的 VS 2015 安装).从广义上讲,它看起来像这样("All Rules" 实际上不依赖于任何其他人):

  • 所有规则
    • 扩展正确性规则
      • 基本正确性规则
        • 最低推荐规则
    • 扩展设计指南规则
      • 基本设计指南规则
        • 最低推荐规则(同上)
    • 全球化规则
    • 安全规则

还值得注意的是,这不是一个没有重叠的清晰层次结构。例如,包含在 "Globalization" 和 "Security" 规则集中的规则也包含在某些其他规则集中(包括 "Minimum" 集)。

要从规则集文件继承,您可以将其包含在:

  <Include Path="MyOther.ruleset" Action="Default" />

然后您可以覆盖特定规则的操作。