使用规则集对代码分析规则进行分组
在 Visual Studio 中配置代码分析时,可以从内置“规则集”列表中进行选择。 规则集是一组代码分析规则,用于标识该项目的目标问题和特定条件。 例如,可以应用旨在扫描公开可用 API 的代码的规则集。 也可应用包含所有可用规则的规则集。
通过添加或删除规则,或者通过更改规则严重性以使其在“错误列表”中显示为警告或错误,来自定义规则集。 自定义的规则集可以满足特定开发环境的需求。 当自定义规则集时,规则集编辑器将提供搜索和过筛选工具来帮助你完成此过程。
规则集可用于托管代码分析、托管代码的传统分析和 C++ 代码分析。
注意
从 Visual Studio 2019 版本 16.3 开始,可使用 EditorConfig 文件为 .NET 源代码分析配置规则,但不能为传统分析配置规则。 有关详细信息,请参阅常见问题解答中的 EditorConfig 与规则集部分。
规则集格式
规则集在 .ruleset 文件中以 XML 格式指定。 规则(由 ID 和操作组成)按分析器 ID 和文件中的命名空间分组。
.ruleset 文件中的内容类似于以下 XML:
<RuleSet Name="Rules for Hello World project" Description="These rules focus on critical issues for the Hello World app." ToolsVersion="10.0">
<Localization ResourceAssembly="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.dll" ResourceBaseName="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.Localized">
<Name Resource="HelloWorldRules_Name" />
<Description Resource="HelloWorldRules_Description" />
</Localization>
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1001" Action="Warning" />
<Rule Id="CA1009" Action="Warning" />
<Rule Id="CA1016" Action="Warning" />
<Rule Id="CA1033" Action="Warning" />
</Rules>
<Rules AnalyzerId="Microsoft.CodeQuality.Analyzers" RuleNamespace="Microsoft.CodeQuality.Analyzers">
<Rule Id="CA1802" Action="Error" />
<Rule Id="CA1814" Action="Info" />
<Rule Id="CA1823" Action="None" />
<Rule Id="CA2217" Action="Warning" />
</Rules>
</RuleSet>
提示
在图形化的规则集编辑器中编辑规则集比手动编辑更容易。
为项目指定规则集
项目的规则集由 Visual Studio 项目文件中的 CodeAnalysisRuleSet 属性指定。 例如:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
...
<CodeAnalysisRuleSet>HelloWorld.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
相关内容
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈