Personalizzare un set di regole

È possibile creare un set di regole personalizzato per soddisfare specifiche esigenze di progetto per l'analisi del codice.

Creare un set di regole personalizzato da un set di regole esistente

Per creare un set di regole personalizzato, è possibile aprire un set di regole predefinito nell'editor del set di regole. Da qui è possibile aggiungere o rimuovere regole specifiche ed è possibile modificare l'azione che si verifica quando viene violata una regola, ad esempio visualizzare un avviso o un errore.

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e quindi scegliere Proprietà.

  2. Nelle pagine Proprietà selezionare la scheda Analisi codice.

  3. Nell'elenco a discesa Regole attive eseguire una delle operazioni seguenti:

    • Scegliere il set di regole da personalizzare.

      - oppure -

    • Selezionare <Sfoglia> per specificare un set di regole esistente non incluso nell'elenco.

  4. Selezionare Apri per visualizzare le regole nell'editor del set di regole.

Nota

Se si dispone di un progetto .NET Core o .NET Standard, il processo è leggermente diverso perché la scheda Analisi codice nelle proprietà del progetto non supporta le stesse opzioni. Seguire la procedura per copiare un set di regole predefinito nel progetto e impostarlo come set di regole attive. Dopo aver copiato su un set di regole, è possibile modificarlo nell'editor del set di regole di Visual Studio aprendolo da Esplora soluzioni.

Creare un nuovo set di regole

È possibile creare un nuovo file del set di regole dalla finestra di dialogo Nuovo file :

  1. Selezionare File>nuovo>file oppure premere CTRL+N.

  2. Nella finestra di dialogo Nuovo file selezionare la categoria Generale a sinistra e quindi selezionare Set di regole di analisi del codice.

  3. Selezionare Apri.

    Il nuovo file con estensione ruleset viene aperto nell'editor del set di regole.

Creare un set di regole personalizzato da più set di regole

Nota

La procedura seguente non si applica ai progetti .NET Core o .NET Standard, che non supportano le stesse funzionalità nella scheda delle proprietà Analisi codice.

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e quindi scegliere Proprietà.

  2. Nelle pagine Proprietà selezionare la scheda Analisi codice.

  3. Selezionare <Scegli più set di> regole da Regole attive.

  4. Nella finestra di dialogo Aggiungi o Rimuovi set di regole scegliere i set di regole da includere nel nuovo set di regole.

    Add or remove rule sets dialog box

  5. Selezionare Salva con nome, immettere un nome per il file con estensione ruleset e quindi selezionare Salva.

    Il nuovo set di regole è selezionato nell'elenco Esegui questo set di regole.

  6. Selezionare Apri per aprire il nuovo set di regole nell'editor del set di regole.

Precedenza delle regole

  • Se la stessa regola è elencata due o più volte in un set di regole con gravità diverse, il compilatore genera un errore. Ad esempio:

    <RuleSet Name="Rules for ClassLibrary21" Description="Code analysis rules for ClassLibrary21.csproj." ToolsVersion="15.0">
       <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
         <Rule Id="CA1021" Action="Warning" />
         <Rule Id="CA1021" Action="Error" />
       </Rules>
    </RuleSet>
    
  • Se la stessa regola è elencata due o più volte in un set di regole con la stessa gravità, è possibile che venga visualizzato l'avviso seguente nell'elenco errori:

    CA0063: impossibile caricare il file del set di regole '[your].ruleset' o uno dei file del set di regole dipendenti. Il file non è conforme allo schema del set di regole.

  • Se il set di regole include un set di regole figlio usando un tag Include e i set di regole figlio e padre impostano entrambe la stessa regola, ma con gravità diverse, la gravità nel set di regole padre ha la precedenza. Ad esempio:

    <!-- Parent rule set -->
    <?xml version="1.0" encoding="utf-8"?>
    <RuleSet Name="Rules for ClassLibrary21" Description="Code analysis rules for ClassLibrary21.csproj." ToolsVersion="15.0">
       <Include Path="classlibrary_child.ruleset" Action="Default" />
       <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
         <Rule Id="CA1021" Action="Warning" /> <!-- Overrides CA1021 severity from child rule set -->
       </Rules>
    </RuleSet>
    
    <!-- Child rule set -->
    <?xml version="1.0" encoding="utf-8"?>
    <RuleSet Name="Rules from child" Description="Code analysis rules from child." ToolsVersion="15.0">
       <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
         <Rule Id="CA1021" Action="Error" />
       </Rules>
    </RuleSet>
    

Nome e descrizione

Per modificare il nome visualizzato di un set di regole aperto nell'editor, aprire la finestra Proprietà selezionando Visualizza>finestra Proprietà sulla barra dei menu. Immettere il nome visualizzato nella casella Nome . È anche possibile immettere una descrizione per il set di regole.

Passaggi successivi

Ora che si dispone di un set di regole, il passaggio successivo consiste nel personalizzare le regole aggiungendo o rimuovendo regole o modificando la gravità delle violazioni delle regole.