Code Analysis usando analisadores de .NET Compiler Platform (Roslyn)

Os analisadores do .NET Compiler Platform (Roslyn) inspecionam a segurança, o desempenho, o design e problemas diversos de códigos em C# ou no Visual Basic. 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 gravidade dos analisadores

Cada diagnóstico ou regra do analisador Roslyn tem um estado de gravidade e supressão padrão que pode ser substituído e personalizado 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 gravidade.

Violações de regras

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 violações de regras relatadas na janela Lista de Erros. As violações do analisador relatadas na lista de erros correspondem à configuração de nível de gravidade da regra:

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

As violações das regras do analisador também aparecem no editor de código como textos sublinhados sob o código transgressor. Por exemplo, a captura de tela a seguir mostra três violações: um erro (texto sublinhado vermelho), um aviso (texto sublinhado 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 do ícone de lâmpada, juntamente com outros tipos de Ações rápidas. Para obter mais informações sobre correções de código, confira Ações rápidas comuns.

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

Configurar níveis de gravidade do analisador

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

Também é possível configurar os analisadores para inspecionar o código no momento da build e conforme você digita. Você pode configurar o escopo da análise de código dinâmico para executar somente no documento atual, em todos os documentos abertos ou na solução inteira. Para obter mais informações, confira Configurar Code Analysis dinâmica para .NET.

Dica

Erros e avisos de tempo de build dos analisadores de código serão mostrados apenas se os analisadores estiverem 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 externos

O Visual Studio inclui um conjunto principal de analisadores Roslyn, que estão sempre ativos. Se precisar de mais analisadores de código, você pode 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 que você abrir no Visual Studio. Para obter informações sobre como instalar esses dois tipos diferentes de analisadores, confira Instalar analisadores de código.

Escopo

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

Observação

Os analisadores originais são fornecidos com o SDK do .NET. É preferível habilitar esses analisadores a partir do SDK do .NET em vez de instalá-los como um Microsoft.CodeAnalysis.NetAnalyzerspacote NuGet. Habilitar os analisadores no SDK do .NET garante que você obtenha automaticamente as correções de bugs e os novos analisadores assim que atualizar o SDK. Para obter mais informações sobre analisadores, consulte Habilitar ou instalar analisadores .NET originais.

Erros de compilação

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

  • Crie um projeto .NET 5.0 ou mais recente, que habilita a Code Analysis por padrão. Para habilitar a Code Analysis em projetos direcionados a versões anteriores do .NET definindo 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 build da linha de comando da criação de um projeto que contém uma violação de regra de 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 quiser configurar a gravidade da regra do analisador, você deve instalar o analisador como um pacote NuGet. Não é possível configurar a gravidade da regra dos analisadores que foram instalados como uma extensão do Visual Studio.

Próximas etapas