Bagikan melalui


Migrasi dari penganalisis NuGet FxCop ke penganalisis .NET

Analisis sumber oleh penganalisis .NET Compiler Platform ("Roslyn") menggantikan analisis warisan untuk kode terkelola. Banyak aturan analisis lama (FxCop) telah ditulis ulang sebagai penganalisis kode sumber.

Sebelum Visual Studio 2019 16.8 dan .NET 5.0, penganalisis ini tersedia dalam bentuk Microsoft.CodeAnalysis.FxCopAnalyzerspaket NuGet.

Dimulai dari Visual Studio 2019 16.8 dan .NET 5.0, penganalisis ini disertakan dalam .NET SDK. Jika Anda tidak ingin pindah ke .NET 5+ SDK atau jika Anda lebih suka model berbasis paket NuGet, penganalisis juga tersedia dalam Microsoft.CodeAnalysis.NetAnalyzerspaket NuGet. Anda mungkin lebih suka model berbasis paket untuk pembaruan versi sesuai permintaan.

Nota

Penganalisis .NET pihak pertama tidak bergantung pada platform target. Artinya, proyek Anda tidak perlu menargetkan platform .NET tertentu. Penganalisis bekerja untuk proyek yang menargetkan net5.0 serta versi .NET sebelumnya, seperti netcoreapp, netstandard, dan net472.

Langkah-langkah migrasi

Dimulai dengan versi 3.3.2, Microsoft.CodeAnalysis.FxCopAnalyzers paket NuGet tidak digunakan lagi. Ikuti langkah-langkah di bawah ini untuk memigrasikan proyek atau solusi Anda dari Microsoft.CodeAnalysis.FxCopAnalyzers ke penganalisis .NET:

  1. Copot Microsoft.CodeAnalysis.FxCopAnalyzers paket NuGet

  2. Aktifkan atau instal penganalisis .NET. Perhatikan bahwa Anda tidak perlu mengubah platform target proyek Anda.

  3. Aktifkan aturan tambahan: Microsoft.CodeAnalysis.NetAnalyzers jauh lebih konservatif dibandingkan dengan Microsoft.CodeAnalysis.FxCopAnalyzers. Tidak seperti paket FxCopAnalyzers, paket ini hanya memiliki beberapa aturan kebenaran yang diaktifkan secara default sebagai peringatan build. Anda dapat mengaktifkan aturan tambahan dengan menyesuaikan properti AnalysisMode MSBuild. Misalnya, mengatur properti ke AllEnabledByDefault akan mengaktifkan semua aturan CA yang berlaku sebagai peringatan build secara default.

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