Поделиться через


Миграция из анализаторов NuGet FxCop в анализаторы .NET

Анализ источника анализаторами платформы компилятора .NET (Roslyn) заменяет устаревший анализ управляемого кода. Многие устаревшие правила анализа (FxCop) уже переписаны в качестве исходных анализаторов.

До Visual Studio 2019 16.8 и .NET 5.0 эти анализаторы поставляются как Microsoft.CodeAnalysis.FxCopAnalyzers пакет NuGet.

Начиная с Visual Studio 2019 16.8 и .NET 5.0, эти анализаторы включены в пакет SDK для .NET. Если вы не хотите перейти к пакету SDK для .NET 5+ или если вы предпочитаете модель на основе пакета NuGet, анализаторы также доступны в пакете Microsoft.CodeAnalysis.NetAnalyzers NuGet. Возможно, вы предпочтете модель на основе пакета для обновлений версий по требованию.

Примечание.

Сторонние анализаторы .NET не зависят от целевой платформы. То есть проект не требует целевой платформы .NET. Анализаторы работают для проектов, целевых net5.0 , а также более ранних версий .NET, таких как netcoreapp, netstandardи net472.

Шаги миграции

Начиная с версии 3.3.2пакет Microsoft.CodeAnalysis.FxCopAnalyzers NuGet устарел. Выполните следующие действия, чтобы перенести проект или решение из Microsoft.CodeAnalysis.FxCopAnalyzers анализаторов .NET:

  1. Удаление Microsoft.CodeAnalysis.FxCopAnalyzers пакета NuGet

  2. Включите или установите анализаторы .NET. Обратите внимание, что вам не нужно изменять целевую платформу проекта.

  3. Включите дополнительные правила: Microsoft.CodeAnalysis.NetAnalyzers гораздо более консервативный по сравнению с Microsoft.CodeAnalysis.FxCopAnalyzers. В отличие от пакета FxCopAnalyzers, он имеет только несколько правил правильности, которые включены по умолчанию в качестве предупреждений сборки. Дополнительные правила можно включить, настроив свойство AnalysisMode MSBuild. Например, присвойте свойству AllEnabledByDefault значение для включения всех применимых правил ЦС в качестве предупреждений сборки по умолчанию.

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