Verwenden von Regelsätzen zum Gruppieren von Codeanalyseregeln

Beim Konfigurieren der Codeanalyse in Visual Studio, oder steht Ihnen eine Liste mit integrierten Regelsätzen zur Verfügung. Ein Regelsatz ist eine Gruppierung von Codeanalyseregeln, die gezielte Probleme und bestimmte Bedingungen für ein Projekt identifizieren. Sie können beispielsweise einen Regelsatz anwenden, der zum Scannen von Code für öffentlich verfügbare APIs konzipiert ist. Sie können auch einen Regelsatz anwenden, der alle verfügbaren Regeln enthält.

Sie können einen Regelsatz anpassen, indem Sie Regeln hinzufügen oder löschen, oder indem Sie die Schweregrade von Regeln so ändern, dass sie in der Fehlerliste entweder als Warnungen oder als Fehler angezeigt werden. Benutzerdefinierte Regelsätze können Sie an Ihre spezielle Entwicklungsumgebung anpassen. Beim Anpassen eines Regelsatzes bietet der Regelsatzeditor hilfreiche Such- und Filtertools.

Regelsätze sind für die Analyse von verwaltetem Code, die Legacyanalyse von verwaltetem Code und die C++-Codeanalyse verfügbar.

Hinweis

Ab Visual Studio 2019 Version 16.3 können Sie EditorConfig-Dateien verwenden, um Regeln für die .NET-Quellcodeanalyse zu konfigurieren, aber nicht für die Legacyanalyse. Weitere Informationen finden Sie im Abschnitt EditorConfig im Vergleich zu Regelsätzen in den häufig gestellten Fragen.

Regelsatzformat

Ein Regelsatz wird im XML-Format in einer .ruleset-Datei angegeben. Regeln, die aus einer ID und einer Aktion bestehen, werden in der Datei nach Analysetool-ID und Namespace gruppiert.

Der Inhalt einer .ruleset-Datei ähnelt dem folgenden XML-Code:

<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>

Tipp

Es ist einfacher, das Bearbeiten eines Regelsatzes im grafischen Regelsatz-Editor als per Hand durchzuführen.

Angeben eines Regelsatzes für ein Projekt

Der Regelsatz für ein Projekt wird durch die CodeAnalysisRuleSet-Eigenschaft in der Visual Studio-Projektdatei angegeben. Beispiel:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  ...
  <CodeAnalysisRuleSet>HelloWorld.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>