Migrer des analyseurs FxCop vers les analyseurs .NET

L’analyse de code source par des analyseurs .NET Compiler Platform (« Roslyn ») remplace l’analyse héritée du code managé. La plupart des règles d’analyse héritées (FxCop) ont déjà été réécrites sous la forme d’analyseurs de code source.

Avant Visual Studio 2019 version 16.8 et .NET 5.0, ces analyseurs étaient livrés en tant que Microsoft.CodeAnalysis.FxCopAnalyzerspackage NuGet.

À compter de Visual Studio 2019 version 16.8 et .NET 5.0, ces analyseurs sont inclus dans le Kit de développement logiciel (SDK) .NET. Si vous ne souhaitez pas passer au SDK .NET 5+ ou si vous préférez un modèle basé sur un package NuGet, les analyseurs sont également disponibles dans le Microsoft.CodeAnalysis.NetAnalyzerspackage NuGet. Vous pouvez préférer un modèle basé sur un package pour les mises à jour de version à la demande.

Notes

Les analyseurs .NET internes sont indépendants de la plateforme cible. Autrement dit, votre projet n’a pas besoin de cibler une plateforme .NET spécifique. Les analyseurs fonctionnent pour les projets qui ciblent net5.0, ainsi que les versions antérieures de .NET, telles que netcoreapp, netstandardet net472.

Étapes de la migration

À compter de la version 3.3.2, le package NuGet Microsoft.CodeAnalysis.FxCopAnalyzers a été déconseillé. Suivez les étapes ci-dessous pour migrer votre projet ou votre solution de Microsoft.CodeAnalysis.FxCopAnalyzers vers les analyseurs .NET :

  1. Désinstallez le package NuGet Microsoft.CodeAnalysis.FxCopAnalyzers

  2. Activez ou installez des analyseurs .NET. Notez que vous n’avez pas besoin de changer la plateforme cible de votre projet.

  3. Activer des règles supplémentaires : Microsoft.CodeAnalysis.NetAnalyzers est beaucoup plus conservateur que Microsoft.CodeAnalysis.FxCopAnalyzers. Contrairement au package FxCopAnalyzers, il ne possède que quelques règles de vérification qui sont activées par défaut en tant qu’avertissements de génération. Vous pouvez activer des règles supplémentaires en personnalisant la propriété AnalysisMode de MSBuild. Par exemple, si vous définissez la propriété sur AllEnabledByDefault, toutes les règles d’autorité de certification applicables seront activées en tant qu’avertissements de génération par défaut.

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