Migrar de analisadores do NuGet para analisadores de .NET
A análise de origem por analisadores da .NET Compiler Platform ("Roslyn") substitui a análise herdada de código gerenciado. Muitas das regras da análise herdada (FxCop) já foram reescritas como analisadores de origem.
Antes do Visual Studio 2019 16.8 e do .NET 5.0, esses analisadores eram enviados como um Microsoft.CodeAnalysis.FxCopAnalyzers
pacote NuGet.
A partir do Visual Studio 2019 16.8 e no .NET 5.0, esses analisadores são incluídos no SDK do .NET. Se você não quer mudar para o SDK do .NET 5+ ou se prefere um modelo no pacote NuGet, os analisadores também estão disponíveis no Microsoft.CodeAnalysis.NetAnalyzers
pacote NuGet. Talvez você prefira um modelo baseado em pacote para atualizações de versão sob demanda.
Observação
Os analisadores do .NET internos são independentes da plataforma de destino. Ou seja, o projeto não precisa ser destinado a uma plataforma específica do .NET. Os analisadores funcionam para projetos direcionados a net5.0
e a 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 o projeto ou a solução de Microsoft.CodeAnalysis.FxCopAnalyzers
para os analisadores do .NET:
Desinstalar o pacote NuGet
Microsoft.CodeAnalysis.FxCopAnalyzers
Habilite ou instale analisadores do .NET. Observe que você não precisa alterar a plataforma de destino do projeto.
Habilitar regras adicionais:
Microsoft.CodeAnalysis.NetAnalyzers
é muito mais conservador em comparação comMicrosoft.CodeAnalysis.FxCopAnalyzers
. Ao contrário do pacote FxCopAnalyzers, ele tem apenas algumas regras de correção habilitadas por padrão como avisos de build. Para habilitar regras adicionais, personalize a propriedade MSBuild AnalysisMode. Por exemplo, definir a propriedade comoAllEnabledByDefault
habilitará todas as regras de AC aplicáveis como avisos de build por padrão.<PropertyGroup> <AnalysisMode>AllEnabledByDefault</AnalysisMode> </PropertyGroup>