Migrieren von FxCop-Analysetools zu .NET-Analysetools

Die Quellanalyse mit den Analysetools der .NET Compiler Platform („Roslyn“) ersetzt die Legacyanalyse für verwalteten Code. Viele Regeln der Legacyanalyse (FxCop) wurden bereits als Tools für die Quellcodeanalyse umgeschrieben.

Vor Visual Studio 2019 (16.8) und .NET 5.0 wurden diese Analysetools als Microsoft.CodeAnalysis.FxCopAnalyzersNuGet-Paket bereitgestellt.

Ab Visual Studio 2019 (16.8) und .NET 5.0 sind diese Analysetools im .NET SDK enthalten. Wenn Sie nicht zum .NET 5+ SDK wechseln möchten oder ein NuGet-paketbasiertes Modell bevorzugen, sind die Analysetools auch im Microsoft.CodeAnalysis.NetAnalyzersNuGet-Paket verfügbar. Möglicherweise bevorzugen Sie ein paketbasiertes Modell für bedarfsgesteuerte Versionsaktualisierungen.

Hinweis

Die .NET-Analysetools von Erstanbietern sind zielplattformunabhängig. Das heißt, Ihr Projekt muss keine bestimmte .NET-Plattform als Ziel verwenden. Die Analysetools funktionieren für Projekte, die auf net5.0 und frühere Versionen von .NET abzielen, z. B. auf netcoreapp, netstandard, und net472.

Schritte bei der Migration

Beginnend mit Version 3.3.2 wurde das NuGet-Paket Microsoft.CodeAnalysis.FxCopAnalyzers als veraltet eingestuft. Führen Sie die folgenden Schritte aus, um Ihr Projekt oder Ihre Projektmappe von Microsoft.CodeAnalysis.FxCopAnalyzers zu den .NET-Analysetools zu migrieren:

  1. Deinstallieren Sie das NuGet-Paket Microsoft.CodeAnalysis.FxCopAnalyzers.

  2. Aktivieren oder installieren Sie die .NET-Analysetools. Beachten Sie, dass Sie die Zielplattform Ihres Projekts nicht ändern müssen.

  3. Aktivieren Sie zusätzliche Regeln: Microsoft.CodeAnalysis.NetAnalyzers ist im Vergleich zu Microsoft.CodeAnalysis.FxCopAnalyzers wesentlich konservativer. Im Gegensatz zum FxCopAnalyzers-Paket verfügt es nur über einige wenige Regeln zur Richtigkeit, die standardmäßig als Buildwarnungen aktiviert sind. Sie können zusätzliche Regeln aktivieren, indem Sie die MSBuild-Eigenschaft AnalysisMode anpassen. Wenn Sie die Eigenschaft beispielsweise auf AllEnabledByDefault festlegen, werden alle geltenden CA-Regeln standardmäßig als Buildwarnungen aktiviert.

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