Usar conjuntos de regras para agrupar regras de análise de código

Ao configurar a análise de código no Visual Studio, você poderá escolher entre uma lista de conjuntos de regras internos. Um conjunto de regras é um agrupamento de regras de análise de código que identificam problemas visados e condições específicas para esse projeto. Por exemplo, você pode aplicar um conjunto de regras projetado para verificar o código de APIs disponíveis publicamente. Você também pode aplicar um conjunto de regras que inclui todas as regras disponíveis.

Você pode personalizar um conjunto de regras adicionando ou excluindo regras ou alterando severidades de regra para aparecer como avisos ou erros na Lista de Erros. Os conjuntos de regras personalizados podem atender a uma necessidade do seu ambiente de desenvolvimento específico. Quando você personaliza um conjunto de regras, o editor de conjunto de regras fornece ferramentas de pesquisa e filtragem para ajudá-lo no processo.

Os conjuntos de regras estão disponíveis para análise de código gerenciado, análise herdada do código gerenciado e análise de código C++.

Observação

A partir do Visual Studio 2019 versão 16.3, você pode usar arquivos EditorConfig para configurar regras de análise de código-fonte do .NET, mas não análise herdada. Para obter mais informações, confira a seção EditorConfig X conjuntos de regras nas perguntas frequentes.

Formato do conjunto de regras

Um conjunto de regras é especificado no formato XML em um arquivo .ruleset. As regras, que consistem em uma ID e uma ação, são agrupadas por ID do analisador e namespace no arquivo.

O conteúdo de um arquivo .ruleset é semelhante a este 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>

Dica

É mais fácil editar um conjunto de regras no Editor de Conjunto de Regras gráfico do que manualmente.

Especificar um conjunto de regras para um projeto

O conjunto de regras para um projeto é especificado pela propriedade CodeAnalysisRuleSet no arquivo de projeto do Visual Studio. Por exemplo:

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