Compartilhar via


Perguntas frequentes sobre a análise de código no Visual Studio

Esta página contém respostas para algumas perguntas frequentes sobre a análise de código baseada no .NET Compiler Platform no Visual Studio.

Análise de código versus EditorConfig

Devo usar a análise de código ou o EditorConfig para verificar o estilo de código?

A análise de código e os arquivos EditorConfig funcionam lado a lado. Ao definir estilos de código em um arquivo EditorConfig ou na página Opções do editor de texto , você está configurando os analisadores de código integrados ao Visual Studio. Os arquivos EditorConfig podem ser usados para habilitar ou desabilitar regras do analisador e também para configurar pacotes do analisador Do NuGet.

EditorConfig versus conjuntos de regras

Devo configurar meus analisadores usando um conjunto de regras ou um arquivo EditorConfig?

Os conjuntos de regras e os arquivos EditorConfig podem coexistir e podem ser usados para configurar analisadores. Os arquivos EditorConfig e os conjuntos de regras permitem habilitar e desabilitar regras e definir a severidade deles.

No entanto, no Visual Studio 2019 versão 16.5 e posterior, os arquivos de conjunto de regras são preteridos em favor dos arquivos EditorConfig, e os projetos .NET Core e .NET 5+ não dão suporte a todos os comandos de menu do conjunto de regras. Para obter mais informações, consulte Converter um arquivo de conjunto de regras existente em um arquivo EditorConfig.

Os arquivos EditorConfig oferecem maneiras adicionais de configurar regras:

Além dos conjuntos de regras e arquivos EditorConfig, alguns analisadores são configurados por meio do uso de arquivos de texto marcados como arquivos adicionais para os compiladores C# e VB.

Observação

  • Os arquivos EditorConfig só podem ser usados para habilitar regras e definir sua gravidade no Visual Studio 2019 versão 16.3 e posterior.
  • Os arquivos EditorConfig não podem ser usados para configurar a análise herdada, enquanto os conjuntos de regras podem.

Análise de código em builds de CI (integração contínua)

A análise de código baseada em plataforma do .NET funciona em builds de CI (integração contínua)?

Sim. Para analisadores instalados com o SDK do .NET 5.0 ou superior ou de um pacote NuGet, essas regras são impostas no momento do build, inclusive durante um build de CI. Os analisadores usados em builds de CI respeitam a configuração de regra de ambos os conjuntos de regras e arquivos EditorConfig. A partir do .NET 5.0, os analisadores de estilo de código integrados ao Visual Studio também são incluídos no SDK do .NET e a maioria deles são imposição em um build de CI. Para obter mais informações, consulte Habilitar no build.

Analisadores de IDE versus StyleCop

Qual é a diferença entre os analisadores de código do IDE do Visual Studio e os analisadores stylecop?

O IDE do Visual Studio inclui analisadores internos que procuram problemas de estilo de código e qualidade. Essas regras ajudam você a usar novos recursos de linguagem à medida que são introduzidos e melhoram a manutenção do código. Os analisadores de IDE são atualizados continuamente com cada versão do Visual Studio.

Analisadores StyleCop são analisadores de terceiros instalados como um pacote NuGet que verificam a consistência de estilo em seu código. Em geral, as regras stylecop permitem definir preferências pessoais para uma base de código sem recomendar um estilo em vez de outro.

Analisadores de código versus análise herdada

Qual é a diferença entre a análise herdada e a análise de código baseada na plataforma do compilador .NET?

A análise de código baseada na plataforma do compilador .NET analisa o código-fonte em tempo real e durante a compilação, enquanto a análise herdada analisa arquivos binários após a conclusão do build. Para obter mais informações, consulte análise baseada na plataforma do compilador .NET versus análise herdada.

Analisadores fxcop versus analisadores do .NET

Qual é a diferença entre analisadores fxcop e analisadores do .NET?

Os analisadores fxcop e analisadores do .NET referem-se às implementações do analisador .NET Compiler Platform ("Roslyn") das regras de AC fxcop. Antes do Visual Studio 2019 16.8 e do .NET 5.0, esses analisadores eram enviados como Microsoft.CodeAnalysis.FxCopAnalyzerspacote NuGet. A partir do Visual Studio 2019 16.8 e do .NET 5.0, esses analisadores são incluídos no SDK do .NET. Eles também estão disponíveis como Microsoft.CodeAnalysis.NetAnalyzerspacote NuGet. Considere a migração de analisadores fxcop para analisadores do .NET.

Tratar avisos como erros

Meu projeto usa a opção de build para tratar avisos como erros. Depois de migrar da análise herdada para a análise do código-fonte, todos os avisos de análise de código agora aparecem como erros. Como posso evitar isso?

Para impedir que os avisos de análise de código sejam tratados como erros, siga estas etapas:

  1. Crie um arquivo .props com o seguinte conteúdo:

    <Project>
       <PropertyGroup>
          <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
       </PropertyGroup>
    </Project>
    
  2. Adicione uma linha ao arquivo de projeto .csproj ou .vbproj para importar o arquivo .props criado na etapa anterior. Essa linha deve ser colocada antes de qualquer linha que importe os arquivos .props do analisador. Por exemplo, se o arquivo .props for nomeado codeanalysis.props:

    ...
    <Import Project="..\..\codeanalysis.props" Condition="Exists('..\..\codeanalysis.props')" />
    <Import Project="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.5.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.5.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props')" />
    ...
    

Página de propriedades da solução de análise de código

Onde está a página de propriedades análise de código para a solução?

A página de propriedades análise de código no nível da solução foi removida em favor do grupo de propriedades compartilhadas mais confiável. Para gerenciar a Análise de Código no nível do projeto, a página de propriedades análise de código ainda está disponível. (Para projetos gerenciados, também recomendamos migrar de conjuntos de regras para EditorConfig para configuração de regra.) Para compartilhar conjuntos de regras em vários/todos os projetos em uma solução ou um repositório, recomendamos definir um grupo de propriedades com a propriedade CodeAnalysisRuleSet em um arquivo de props/destinos compartilhado ou arquivo Directory.props/Directory.targets . Se você não tiver props ou destinos comuns que todos os seus projetos importam, considere adicionar esse grupo de propriedades a um directory.props ou a um arquivo Directory.targets em um diretório de solução de nível superior, que é importado automaticamente em todos os arquivos de projeto definidos no diretório ou em seus subdiretórios.