Udostępnij za pośrednictwem


Migrowanie z analizatorów NuGet FxCop do analizatorów platformy .NET

Analiza źródła przez analizatory platformy kompilatora .NET ("Roslyn") zastępuje starszą analizę kodu zarządzanego. Wiele starszych reguł analizy (FxCop) zostało już zaktualizowanych jako analizatory kodu źródłowego.

Przed programem Visual Studio 2019 16.8 i .NET 5.0 te analizatory są dostarczane jako Microsoft.CodeAnalysis.FxCopAnalyzerspakiet NuGet.

Począwszy od programów Visual Studio 2019 16.8 i .NET 5.0, te analizatory są dołączone do zestawu .NET SDK. Jeśli nie chcesz przechodzić do zestawu .NET 5+ SDK lub jeśli wolisz model oparty na pakietach NuGet, analizatory są również dostępne w Microsoft.CodeAnalysis.NetAnalyzerspakiecie NuGet. Możesz preferować model oparty na pakietach dla aktualizacji wersji na żądanie.

Uwaga / Notatka

Analizatory .NET autorstwa pierwszej strony są niezależne od platformy. Oznacza to, że projekt nie musi być przeznaczony dla określonej platformy .NET. Analizatory działają w przypadku projektów docelowych net5.0, a także wcześniejszych wersji platformy .NET, takich jak netcoreapp, netstandard i net472.

Kroki migracji

Począwszy od wersji 3.3.2, Microsoft.CodeAnalysis.FxCopAnalyzers pakiet NuGet został przestarzały. Wykonaj poniższe kroki, aby przeprowadzić migrację projektu lub rozwiązania z Microsoft.CodeAnalysis.FxCopAnalyzers do analizatorów platformy .NET:

  1. Odinstalowywanie Microsoft.CodeAnalysis.FxCopAnalyzers pakietu NuGet

  2. Włącz lub zainstaluj analizatory .NET. Pamiętaj, że nie trzeba zmieniać platformy docelowej projektu.

  3. Włącz dodatkowe reguły: Microsoft.CodeAnalysis.NetAnalyzers jest znacznie bardziej konserwatywny w porównaniu z Microsoft.CodeAnalysis.FxCopAnalyzers. W przeciwieństwie do pakietu FxCopAnalyzers, ma tylko kilka reguł poprawności, które są domyślnie włączone jako ostrzeżenia kompilacji. Możesz włączyć dodatkowe reguły , dostosowując właściwość AnalysisMode MSBuild. Na przykład ustawienie właściwości na AllEnabledByDefault spowoduje, że wszystkie odpowiednie reguły analizy kodu będą domyślnie włączane jako ostrzeżenia kompilacji.

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