代码分析规则集的层次结构
本文关键字:层次结构 规则集 代码 | 更新日期: 2023-09-27 17:57:22
我有一个解决方案,其中包含两个MVC 5 Web应用程序以及关联的类库,并且代码分析设置导致构建挂起。如果我尝试在这段时间内与 UI 交互,我会看到"VS 正忙"气泡。让构建在一夜之间完成也不起作用。
为了解决这个问题,我关闭了所有项目的代码分析,项目构建得很好[0]。所以我在其中一个 MVC 项目上启用了"Microsoft所有规则",但构建过程没有完成。
"Microsoft托管最小规则"构建,但我现在想要的是有某种结构化的方式来浏览规则集,其中我尝试的下一个是最后一个成功规则集的超集。是否存在这样的层次结构,如果存在,是否有规范的参考?
一旦我达到那个级别,我就可以开始隔离各个规则,也许通过增加构建输出的详细程度......
[0]
这句话不应该被解释为"没有代码分析的构建是完全可以的"
一般层次结构通过位于Visual Studio安装目录下的.ruleset
文件中的Include
元素公开(例如:典型的VS 2015安装为C:'Program Files (x86)'Microsoft Visual Studio 14.0'Team Tools'Static Analysis Tools'Rule Sets
)。 从广义上讲,它看起来像这样("所有规则"实际上并不依赖于任何其他规则):
- 所有规则
- 扩展正确性规则
- 基本正确性规则
- 最低建议规则
- 基本正确性规则
- 扩展设计指南规则
- 基本设计指南规则
- 最低建议规则(同上)
- 基本设计指南规则
- 全球化规则
- 安全规则
- 扩展正确性规则
还值得注意的是,这不是一个没有重叠的干净层次结构。 例如,"全球化"和"安全"规则集中包含的规则也包含在其他一些规则集中(包括"最小"集)。
要从规则集文件继承,可以将其包含在:
<Include Path="MyOther.ruleset" Action="Default" />
然后,您可以覆盖特定规则的操作。