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

时间:2016-07-18 11:03:36

标签: c# .net asp.net-mvc code-analysis

我有一个包含两个带有相关类库的MVC 5 Web应用程序的解决方案,并且代码分析设置导致构建挂起。如果我在这段时间内尝试与用户界面进行互动,我会得到" VS正忙着#34;气泡。让构建在一夜之间完成也不起作用。

为了排除故障,我关闭了所有项目的代码分析,项目构建得很好[0]。所以我启用了" Microsoft All Rules"其中一个MVC项目和构建过程都没有完成。

" Microsoft管理的最低规则"构建,但我现在喜欢的是,通过规则集的某种结构化方式,我尝试的下一个是最后一个成功的超集。这样的层次结构是否存在,如果存在,是否有规范的参考?

一旦达到那个级别,我就可以开始孤立个别规则,也许是通过增加构建输出的详细程度......

[0]
不应将此陈述解释为"没有代码分析的构建完全没问题"

2 个答案:

答案 0 :(得分:4)

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

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

值得注意的是,这不是一个没有重叠的干净层次结构。例如,"全球化"中包含的规则。和"安全"规则集也包含在其他一些规则集中(包括"最小"设置)。

答案 1 :(得分:1)

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

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

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