Utiliser des ensembles de règles pour regrouper des règles d’analyse du code

Lorsque vous configurez l’analyse du code dans Visual Studio, vous pouvez choisir parmi une liste d’ensembles de règles intégrés. Un ensemble de règles est un regroupement de règles d’analyse du code qui identifient les problèmes ciblés et des conditions spécifiques pour ce projet. Par exemple, vous pouvez appliquer un ensemble de règles conçu pour analyser le code à la recherche d’API accessibles au public. Vous pouvez également appliquer un ensemble de règles qui inclut toutes les règles disponibles.

Vous pouvez personnaliser un ensemble de règles en ajoutant ou en supprimant des règles ou en modifiant la gravité des règles pour apparaître sous forme d’avertissements ou d’erreurs dans la Liste d’erreurs. Les ensembles de règles personnalisés peuvent répondre à un besoin pour votre environnement de développement particulier. Lorsque vous personnalisez un ensemble de règles, l’éditeur du jeu de règles fournit des outils de recherche et de filtrage pour vous aider dans le processus.

Les ensembles de règles sont disponibles pour l’analyse du code managé, l’analyse héritée du code managé etl’analyse du code C++.

Notes

À compter de Visual Studio 2019 version 16.3, vous pouvez utiliser les fichiers EditorConfig pour configurer des règles pour l’analyse du code source .NET, mais pas pour l’analyse héritée. Pour plus d’informations, consultez la section EditorConfig et ensembles de règles dans la FAQ.

Format du jeu de règles

Un jeu de règles est spécifié au format XML dans un fichier .ruleset. Les règles, qui se composent d’un identifiant et d’une action, sont regroupées par identifiant d’analyseur et espace de noms dans le fichier.

Le contenu d’un fichier .ruleset ressemble à ce 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>

Conseil

Il est plus facile de modifier un ensemble de règles dans l’éditeur de jeu de règles graphique que manuellement.

Spécifier un ensemble de règles pour un projet

L’ensemble de règles d’un projet est spécifié par la propriété CodeAnalysisRuleSet dans le fichier projet Visual Studio. Par exemple :

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