Personnaliser un ensemble de règles

Vous pouvez créer un ensemble de règles personnalisé pour répondre aux besoins spécifiques du projet pour l’analyse du code.

Créer un ensemble de règles personnalisé à partir d’un ensemble de règles existant

Pour créer un ensemble de règles personnalisé, vous pouvez ouvrir un ensemble de règles intégré dans l’éditeur d’ensemble de règles. À partir de là, vous pouvez ajouter ou supprimer des règles spécifiques, et vous pouvez changer l’action qui se produit quand une règle est enfreinte, par exemple, afficher un avertissement ou une erreur.

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés.

  2. Dans les pages Propriétés, sélectionnez l’onglet Analyse du code.

  3. Dans la liste déroulante Règles actives, effectuez l’une des opérations suivantes :

    • Choisissez l’ensemble de règles que vous souhaitez personnaliser.

      - ou -

    • Sélectionnez <Parcourir> pour spécifier un ensemble de règles existant qui ne figure pas dans la liste.

  4. Sélectionnez Ouvrir pour afficher les règles dans l’éditeur d’ensemble de règles.

Notes

Si vous avez un projet .NET Core ou .NET Standard, le processus est légèrement différent, car l’onglet Analyse du code dans les propriétés du projet ne prend pas en charge les mêmes options. Suivez les étapes pour copier un ensemble de règles prédéfini dans votre projet et le définir comme ensemble de règles actif. Une fois que vous avez copié un ensemble de règles, vous pouvez le modifier dans l’éditeur d’ensemble de règles Visual Studio en l’ouvrant à partir de l’Explorateur de solutions.

Créer un ensemble de règles

Vous pouvez créer un fichier d’ensemble de règles à partir de la boîte de dialogue Nouveau fichier :

  1. Sélectionnez Fichier>Nouveau>Fichier, ou appuyez sur Ctrl+N.

  2. Dans la boîte de dialogue Nouveau fichier, sélectionnez la catégorie Général sur la gauche, puis sélectionnez Ensemble de règles d’analyse du code.

  3. Sélectionnez Ouvrir.

    Le nouveau fichier .ruleset s’ouvre dans l’éditeur d’ensemble de règles.

Créer un ensemble de règles personnalisé à partir de plusieurs ensembles de règles

Notes

La procédure suivante ne s’applique pas aux projets .NET Core ou .NET Standard, qui ne prennent pas en charge les mêmes fonctionnalités dans l’onglet de propriété Analyse du code.

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés.

  2. Dans les pages Propriétés, sélectionnez l’onglet Analyse du code.

  3. Sélectionnez <Choisir plusieurs ensembles de règles> dans Règles actives.

  4. Dans la boîte de dialogue Ajouter ou supprimer des ensembles de règles, choisissez les ensembles de règles à ajouter à votre nouvel ensemble de règles.

    Add or remove rule sets dialog box

  5. Sélectionnez Enregistrer sous, entrez un nom pour le fichier .ruleset, puis sélectionnez Enregistrer.

    Le nouvel ensemble de règles est sélectionné dans la liste Exécuter cet ensemble de règles.

  6. Sélectionnez Ouvrir pour ouvrir le nouvel ensemble de règles dans l’éditeur d’ensemble de règles.

Précédence des règles

  • Si la même règle est listée plusieurs fois dans un ensemble de règles avec des gravités différentes, le compilateur génère une erreur. Par exemple :

    <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>
    
  • Si la même règle est listée plusieurs fois dans un ensemble de règles avec la même gravité, vous pouvez voir l’avertissement suivant dans la liste d’erreurs :

    CA0063 : Le chargement du fichier d’ensemble de règles « [your].ruleset » ou d’un de ses fichiers d’ensemble de règles dépendants a échoué. Le fichier n’est pas conforme au schéma de l’ensemble de règles.

  • Si l’ensemble de règles a un ensemble de règles enfant avec une étiquette Include, et que les ensembles de règles enfant et parent listent tous les deux la même règle, mais avec des gravités différentes, la gravité dans l’ensemble de règles parent est prioritaire. Par exemple :

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

Nom et description

Pour changer le nom complet d’un ensemble de règles ouvert dans l’éditeur, ouvrez la fenêtre Propriétés en sélectionnant Affichage>Fenêtre Propriétés dans la barre de menus. Entrez le nom complet dans la zone Nom. Vous pouvez également entrer une description pour l’ensemble de règles.

Étapes suivantes

Maintenant que vous avez un ensemble de règles, l’étape suivante personnalise les règles en ajoutant ou en supprimant des règles, ou en modifiant la gravité des infractions de règles.