Dela via


Migrera från NuGet FxCop-analysverktyg till .NET-analysverktyg

Källanalys av .NET Compiler Platform ("Roslyn") ersätter gammal analys för hanterad kod. Många av reglerna för äldre analyser (FxCop) har redan skrivits om som källanalysverktyg.

Före Visual Studio 2019 16.8 och .NET 5.0 levererades dessa analysverktyg som Microsoft.CodeAnalysis.FxCopAnalyzersNuGet-paket.

Från och med Visual Studio 2019 16.8 och .NET 5.0 ingår dessa analysverktyg i .NET SDK. Om du inte vill flytta till .NET 5+ SDK eller om du föredrar en NuGet-paketbaserad modell är analysverktygen också tillgängliga i Microsoft.CodeAnalysis.NetAnalyzersNuGet-paketet. Du kanske föredrar en paketbaserad modell för versionsuppdateringar på begäran.

Anmärkning

.NET-analysverktygen från första part är målplattformsoberoende. Det innebär att projektet inte behöver rikta in sig på en specifik .NET-plattform. Analysverktygen fungerar för projekt som riktar sig till net5.0 samt tidigare .NET-versioner, till exempel netcoreapp, netstandardoch net472.

Migreringssteg

Från och med version 3.3.2Microsoft.CodeAnalysis.FxCopAnalyzers har NuGet-paketet blivit inaktuellt. Följ stegen nedan för att migrera projektet eller lösningen från Microsoft.CodeAnalysis.FxCopAnalyzers till .NET-analysverktygen:

  1. Avinstallera Microsoft.CodeAnalysis.FxCopAnalyzers NuGet-paketet

  2. Aktivera eller installera .NET-analysverktyg. Observera att du inte behöver ändra projektets målplattform.

  3. Aktivera ytterligare regler: Microsoft.CodeAnalysis.NetAnalyzers är mycket mer konservativ jämfört med Microsoft.CodeAnalysis.FxCopAnalyzers. Till skillnad från FxCopAnalyzers-paketet har det bara några regler för korrekthet som är aktiverade som standard som byggvarningar. Du kan aktivera ytterligare regler genom att anpassa egenskapen AnalysisMode MSBuild. Om du till exempel anger egenskapen till AllEnabledByDefault aktiveras alla tillämpliga CA-regler som byggvarningar som standard.

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