使用規則集將程式碼分析規則分組
適用于:Visual Studio
Visual Studio for Mac
Visual Studio Code
當您在 Visual Studio 中設定程式碼分析時,您可以從內建 規則集清單中選擇。 規則集是程式碼分析規則的群組,可識別該專案的目標問題和特定條件。 例如,您可以套用設計來掃描程式碼以取得公開可用 API 的規則集。 您也可以套用包含所有可用規則的規則集。
您可以藉由新增或刪除規則,或變更規則嚴重性來自訂規則集,以在 [錯誤清單] 中顯示為警告或錯誤。 自訂規則集可滿足您特定開發環境的需求。 當您自訂規則集時,規則集編輯器會提供搜尋和篩選工具來協助您進行。
規則集可用於 Managed 程式碼分析、Managed程式 代碼的舊版分析,以及 C++ 程式碼分析。
注意
從 Visual Studio 2019 16.3 版開始,您可以使用 EditorConfig 檔案來設定 .NET 原始程式碼分析的規則,但無法設定舊版分析的規則。 如需詳細資訊,請參閱常見問題中的 EditorConfig 與規則集 一節。
規則集格式
規則集是以 .ruleset 檔案中的 XML 格式指定。 由識別碼和 動作組成的規則會依檔案中的分析器識別碼和命名空間分組。
.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>