Compartilhar via


Análise de código usando analisadores roslyn (plataforma de compilador do .NET)

Os analisadores da plataforma de compilador .NET (Roslyn) inspecionam seu código C# ou Visual Basic em busca de estilo, qualidade, manutenção, design e outros problemas. Essa inspeção ou análise ocorre durante o tempo de design em todos os arquivos abertos.

Os analisadores são divididos nos seguintes grupos:

Níveis de severidade dos analisadores

Cada regra do analisador Roslyn, ou diagnóstico, tem um estado padrão de severidade e supressão que você pode personalizar para seu projeto.

Os níveis de gravidade incluem: Erro, Aviso, Sugestão, Silencioso, Nenhum e Padrão. Para obter informações detalhadas e comportamento, consulte Configurar níveis de severidade.

Violações de regra

Se um analisador encontrar violações de regra do analisador, ele as relatará na janela Lista de Erros e no editor de código.

A captura de tela a seguir mostra as violações de regra relatadas na janela Lista de Erros . As violações do analisador relatadas na lista de erros correspondem à configuração do nível de gravidade da regra:

Captura de tela que mostra as violações do analisador na janela Lista de Erros.

As violações de regras do analisador também aparecem no editor de código como linhas onduladas sob o trecho de código incorreto. Por exemplo, a captura de tela a seguir mostra três violações: um erro (linha de rabiscos vermelho), um aviso (linha de rabiscos verde) e uma sugestão (três pontos cinzas):

Captura de tela que mostra marcas de erro, aviso e sugestão no editor de código.

Correções de código

Muitos diagnósticos têm uma ou mais correções de código associadas que você pode aplicar para corrigir a violação de regra. As correções de código são mostradas no menu ícone de lâmpada junto com outros tipos de Ações Rápidas. Para obter mais informações sobre correções de código, consulte Ações Rápidas Comuns.

Captura de tela que mostra uma violação do analisador e correção de código de Ação Rápida no editor de código.

Configurar níveis de severidade do analisador

Você pode configurar a gravidade das regras do analisador em um arquivo EditorConfig ou no menu de lâmpadas.

Você também pode configurar analisadores para inspecionar o código no momento do build e à medida que digita. Você pode configurar o escopo da análise de código dinâmico para executar somente para o documento atual, todos os documentos abertos ou toda a solução. Para obter mais informações, consulte Configurar a análise de código dinâmico para .NET.

Dica

Erros de tempo de build e avisos de analisadores de código são mostrados somente se os analisadores são instalados como um pacote NuGet. Os analisadores internos (por exemplo, IDE0067 e IDE0068) nunca são executados durante o build.

Instalar analisadores de código externo

O Visual Studio inclui um conjunto principal de analisadores Roslyn, que estão sempre ativos. Se você precisar de mais analisadores de código, poderá instalar analisadores externos para cada projeto por meio de um pacote NuGet. Alguns analisadores também estão disponíveis como uma extensão .vsix do Visual Studio, caso em que se aplicam a qualquer solução aberta no Visual Studio. Para obter informações sobre como instalar esses dois tipos diferentes de analisadores, consulte Instalar analisadores de código.

Escopo

Se você instalar um analisador como um pacote NuGet, o método preferencial, ele se aplicará somente ao projeto em que o pacote NuGet está instalado. Caso contrário, se você instalar um analisador como uma extensão do Visual Studio, ele se aplicará no nível da solução e a todas as instâncias do Visual Studio. Em ambientes de equipe, um analisador instalado como um pacote NuGet está no escopo de todos os desenvolvedores que trabalham nesse projeto.

Observação

Analisadores nativos estão incluídos no SDK do .NET. É preferível que você habilite esses analisadores do SDK do .NET em vez de instalá-los como um Microsoft.CodeAnalysis.NetAnalyzerspacote NuGet. Habilitar os analisadores do SDK do .NET garante que você obtenha automaticamente correções de bug do analisador e novos analisadores assim que você atualizar o SDK. Para obter mais informações sobre analisadores, consulte Habilitar ou instalar analisadores .NET de primeira parte.

Erros de compilação

Para impor as regras no momento do build, usando uma linha de comando ou builds de CI (integração contínua), escolha uma das seguintes opções:

  • Crie um projeto .NET 5.0 ou posterior, que habilita a análise de código por padrão. Para habilitar a análise de código em projetos destinados a versões anteriores do .NET, defina a propriedade EnableNETAnalyzers como true.

  • Instale os analisadores como um pacote NuGet. Se você instalar os analisadores como uma extensão do Visual Studio, os avisos e erros do analisador não aparecerão no relatório de build.

A captura de tela a seguir mostra a saída de compilação de linha de comando de um projeto que contém uma violação de regra do analisador:

Captura de tela que mostra uma saída do MSBuild com uma violação de regra em um Prompt de Comando do Desenvolvedor.

Gravidade da regra

Se você quiser configurar a gravidade da regra do analisador, deverá instalar o analisador como um pacote NuGet. Você não pode configurar a gravidade das regras de analisadores instalados como extensão do Visual Studio.

Próximas etapas