Миграция из устаревшего анализа (FxCop) в исходный анализ (анализаторы .NET)

Анализ источника анализаторами платформы компилятора .NET (Roslyn) заменяет устаревший анализ управляемого кода. Для новых шаблонов проектов, таких как проекты .NET Core и .NET Standard, устаревший анализ недоступен.

Многие устаревшие правила анализа (FxCop) уже были перезаписаны для анализаторов .NET, набор анализаторов кода Roslyn. Анализаторы Roslyn выполняют анализ на основе исходного кода во время выполнения компилятора. Результаты работы анализатора выводятся вместе с результатами выполнения компилятора.

Дополнительные сведения о различиях между устаревшим анализом и анализом источников см. в следующих статьях:

Миграция

Чтобы выполнить миграцию в исходный анализ, выполните приведенные действия.

  1. Включите или установите анализаторы .NET. Как и в случае нарушений правил устаревшей функции анализа, нарушения анализа исходного кода отображаются в Visual Studio в окне списка ошибок. Кроме того, нарушения анализа исходного кода выделяются в редакторе кода с помощью волнистых линий под соответствующим кодом. Цвет волнистой линии зависит параметра серьезности правила. Сведения о состоянии правил, перенесенных в новые анализаторы .NET, см. в статье "Переносируемые и неподдерживаемые правила".

    Примечание.

    До Visual Studio 2019 16.8 и .NET 5.0 эти анализаторы поставляются как Microsoft.CodeAnalysis.FxCopAnalyzersпакет NuGet. Начиная с Visual Studio 2019 16.8 и .NET 5.0, эти анализаторы включены в пакет SDK для .NET. Они также доступны в виде Microsoft.CodeAnalysis.NetAnalyzersпакета NuGet. Дополнительные сведения см. в статье "Миграция из анализаторов FxCop в анализаторы .NET".

  2. Чтобы устранить CA0507, убедитесь, что анализ устаревшего кода отключен для проекта. В файле проекта задайте RunCodeAnalysis для свойства значение false:

    <RunCodeAnalysis>false</RunCodeAnalysis>

    Или откройте анализ кода свойств>проекта и отключите запуск при настройке сборки.

Настройка

Дополнительные сведения о настройке анализаторов .NET: