Usare i set di regole per raggruppare le regole di analisi del codice

Quando si configura l'analisi del codice in Visual Studio, è possibile scegliere da un elenco di set di regole predefiniti. Un set di regole è un raggruppamento di regole di analisi del codice che identificano problemi di destinazione e condizioni specifiche per tale progetto. Ad esempio, è possibile applicare un set di regole progettato per analizzare il codice per le API disponibili pubblicamente. È anche possibile applicare un set di regole che include tutte le regole disponibili.

È possibile personalizzare un set di regole aggiungendo o eliminando regole o modificando i livelli di gravità delle regole in modo che vengano visualizzati come avvisi o errori nell'elenco errori. I set di regole personalizzati possono soddisfare la necessità di un ambiente di sviluppo specifico. Quando si personalizza un set di regole, l'editor del set di regole fornisce strumenti di ricerca e filtro per facilitare il processo.

I set di regole sono disponibili per l'analisi del codice gestito, l'analisi legacy del codice gestito e l'analisi del codice C++.

Nota

A partire da Visual Studio 2019 versione 16.3, è possibile usare i file EditorConfig per configurare le regole per l'analisi del codice sorgente .NET, ma non per l'analisi legacy. Per altre informazioni, vedere la sezione EditorConfig e set di regole nelle domande frequenti.

Formato del set di regole

Un set di regole viene specificato in formato XML in un file con estensione ruleset . Le regole, costituite da un ID e un'azione, vengono raggruppate in base all'ID dell'analizzatore e allo spazio dei nomi nel file.

Il contenuto di un file con estensione ruleset è simile al codice XML seguente:

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

Suggerimento

È più semplice modificare un set di regole nell'editor del set di regole grafico rispetto a quello manuale.

Specificare un set di regole per un progetto

Il set di regole per un progetto viene specificato dalla proprietà CodeAnalysisRuleSet nel file di progetto di Visual Studio. Ad esempio:

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