Używanie zestawów reguł do grupowania reguł analizy kodu

Podczas konfigurowania analizy kodu w programie Visual Studio można wybrać jedną z listy wbudowanych zestawów reguł. Zestaw reguł to grupowanie reguł analizy kodu, które identyfikują docelowe problemy i określone warunki dla tego projektu. Można na przykład zastosować zestaw reguł przeznaczony do skanowania kodu pod kątem publicznie dostępnych interfejsów API. Można również zastosować zestaw reguł, który zawiera wszystkie dostępne reguły.

Zestaw reguł można dostosować, dodając lub usuwając reguły albo zmieniając ważność reguły, aby wyświetlane jako ostrzeżenia lub błędy na liście błędów. Dostosowane zestawy reguł mogą spełnić potrzeby konkretnego środowiska do tworzenia oprogramowania. Podczas dostosowywania zestawu reguł edytor zestawu reguł udostępnia narzędzia do wyszukiwania i filtrowania, które ułatwiają proces.

Zestawy reguł są dostępne na potrzeby analizy kodu zarządzanego, starszej analizy kodu zarządzanego i analizy kodu C++.

Uwaga

Począwszy od programu Visual Studio 2019 w wersji 16.3, można użyć plików EditorConfig do skonfigurowania reguł analizy kodu źródłowego platformy .NET, ale nie starszej analizy. Aby uzyskać więcej informacji, zobacz sekcję EditorConfig versus rule sets (EdytorConfig a zestawy reguł) w sekcji Faq (Często zadawane pytania).

Format zestawu reguł

Zestaw reguł jest określony w formacie XML w pliku .ruleset . Reguły składające się z identyfikatora i akcji są grupowane według identyfikatora analizatora i przestrzeni nazw w pliku.

Zawartość pliku ruleset wygląda podobnie do następującego kodu 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>

Napiwek

Łatwiej jest edytować zestaw reguł w graficznym edytorze zestawu reguł niż ręcznie.

Określanie zestawu reguł dla projektu

Zestaw reguł dla projektu jest określony przez właściwość CodeAnalysisRuleSet w pliku projektu programu Visual Studio. Na przykład:

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