Compartilhar via


Migrar de analisadores do NuGet FxCop para analisadores do .NET

A análise de origem por analisadores da Plataforma do Compilador .NET ("Roslyn") substitui a análise herdada do código gerenciado. Muitas das regras de análise legadas (FxCop) já foram reescritas em analisadores de origem.

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. Se você não quiser migrar para o SDK do .NET 5+ ou se preferir um modelo baseado em pacote NuGet, os analisadores também estarão disponíveis no Microsoft.CodeAnalysis.NetAnalyzerspacote NuGet. Você pode preferir um modelo baseado em pacote para atualizações de versão sob demanda.

Observação

Os analisadores .NET de primeira parte são independentes da plataforma de destino. Ou seja, seu projeto não precisa ter como destino uma plataforma .NET específica. Os analisadores funcionam para projetos que têm como alvo net5.0, bem como versões anteriores do .NET, como netcoreapp, netstandard e net472.

Etapas da migração

A partir da versão 3.3.2, Microsoft.CodeAnalysis.FxCopAnalyzers o pacote NuGet foi preterido. Siga as etapas abaixo para migrar seu projeto ou solução de Microsoft.CodeAnalysis.FxCopAnalyzers para os analisadores .NET:

  1. Desinstalar Microsoft.CodeAnalysis.FxCopAnalyzers pacote NuGet

  2. Habilitar ou instalar analisadores do .NET. Observe que você não precisa alterar a plataforma de destino do projeto.

  3. Habilitar regras adicionais: Microsoft.CodeAnalysis.NetAnalyzers é muito mais conservador em comparação com Microsoft.CodeAnalysis.FxCopAnalyzers. Ao contrário do pacote FxCopAnalyzers, ele tem apenas algumas regras de correção que são habilitadas por padrão como avisos de build. Você pode habilitar regras adicionais personalizando a propriedade AnalysisMode MSBuild. Por exemplo, definir a propriedade para AllEnabledByDefault habilitará todas as regras de análise de código aplicáveis como avisos de compilação por padrão.

    <PropertyGroup>
      <AnalysisMode>AllEnabledByDefault</AnalysisMode>
    </PropertyGroup>