【问题标题】:Hierarchy of code analysis rulesets?代码分析规则集的层次结构?
【发布时间】:2019-12-17 17:15:12
【问题描述】:

我有一个解决方案,其中包含两个带有关联类库的 MVC 5 Web 应用程序,并且代码分析设置导致构建挂起。如果我在这段时间尝试与 UI 交互,我会得到“VS 很忙”的气泡。让构建在一夜之间完成也不行。

为了解决这个问题,我关闭了所有项目的代码分析,并且项目构建得很好 [0]。所以我在其中一个 MVC 项目上启用了“Microsoft 所有规则”,但构建过程没有完成。

“Microsoft 托管的最低规则”构建,但我现在想要的是有某种结构化的方式来遍历规则集,我尝试的下一个是最后一个成功的超集。是否存在这样的层次结构,如果存在,是否有规范参考?

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

[0]
这句话不应该被解释为“没有代码分析的构建是完全可以的”

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-25
        • 2013-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多