Sdílet prostřednictvím


Migrace z analyzátorů NuGet FxCop na analyzátory .NET

Analýza zdrojového kódu podle platformy kompilátoru .NET (Roslyn) nahrazuje starší analýzu spravovaného kódu. Řada pravidel starší analýzy (FxCop) se už přepsala jako analyzátory zdrojů.

Před sadou Visual Studio 2019 16.8 a .NET 5.0 byly tyto analyzátory dodány jako Microsoft.CodeAnalysis.FxCopAnalyzers balíček NuGet.

Počínaje sadou Visual Studio 2019 16.8 a .NET 5.0 jsou tyto analyzátory součástí sady .NET SDK. Pokud nechcete přejít na sadu .NET 5+ SDK nebo pokud dáváte přednost modelu založenému na balíčku NuGet, jsou analyzátory dostupné také v Microsoft.CodeAnalysis.NetAnalyzers balíčku NuGet. Pro aktualizace verzí na vyžádání můžete preferovat model založený na balíčcích.

Poznámka:

Analyzátory .NET první strany jsou nezávislé na cílové platformě. To znamená, že váš projekt nemusí cílit na konkrétní platformu .NET. Analyzátory pracují pro projekty, které cílí net5.0 , stejně jako starší verze .NET, jako netcoreappjsou , netstandarda net472.

Kroky migrace

Počínaje verzí 3.3.2Microsoft.CodeAnalysis.FxCopAnalyzers je balíček NuGet zastaralý. Pokud chcete migrovat projekt nebo řešení z Microsoft.CodeAnalysis.FxCopAnalyzers analyzátorů .NET, postupujte podle následujících kroků:

  1. Odinstalace Microsoft.CodeAnalysis.FxCopAnalyzers balíčku NuGet

  2. Povolte nebo nainstalujte analyzátory .NET. Mějte na paměti, že nemusíte měnit cílovou platformu projektu.

  3. Povolit další pravidla: Microsoft.CodeAnalysis.NetAnalyzers je mnohem konzervativnější v porovnání s Microsoft.CodeAnalysis.FxCopAnalyzers. Na rozdíl od balíčku FxCopAnalyzers má pouze několik pravidel správnosti, která jsou ve výchozím nastavení povolena jako upozornění sestavení. Další pravidla můžete povolit přizpůsobením vlastnosti AnalysisMode MSBuild. Nastavením vlastnosti AllEnabledByDefault například povolíte všechna příslušná pravidla certifikační autority jako upozornění sestavení ve výchozím nastavení.

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