Прочитать на английском

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


Анализ кода с помощью анализаторов платформы компилятора .NET (Roslyn)

Анализаторы платформы компилятора .NET (Roslyn) проверяют код C# или Visual Basic для стиля, качества, удобства обслуживания, проектирования и других проблем. Эта проверка или анализ происходит во время разработки во всех открытых файлах.

Анализаторы делятся на следующие группы:

Уровни серьезности анализаторов

Каждое правило анализатора Roslyn или диагностика имеет уровень серьезности и состояние подавления по умолчанию, которое можно настроить для проекта.

Уровни серьезности включают: ошибка, предупреждение, предложение, молчаливое, нет и значение по умолчанию. Подробные сведения и поведение см. в разделе "Настройка уровней серьезности".

Нарушения правил

Если анализатор находит нарушения правил анализатора, он сообщает их в окне списка ошибок и в редакторе кода.

На следующем снимке экрана показаны нарушения правил, сообщаемые в окне списка ошибок . Нарушения анализатора, сообщаемые в списке ошибок, соответствуют параметру уровня серьезности правила:

Снимок экрана, показывающий нарушения анализатора в окне списка ошибок.

Нарушения правил анализатора также отображаются в редакторе кода в виде волнистых линий под кодом с ошибками. Например, на следующем снимке экрана показаны три нарушения: одна ошибка (красная волнистая линия), одно предупреждение (зеленая волнистая линия) и одна рекомендация (три серых точки).

Снимок экрана: метки ошибок, предупреждений и предложений в редакторе кода.

Исправления кода

Многие средства диагностики имеют одно или несколько связанных исправлений кода , которые можно применить для исправления нарушения правила. Исправления кода отображаются в меню значка лампочки вместе с другими типами быстрых действий. Дополнительные сведения об исправлениях кода см. в разделе "Распространенные быстрые действия".

Снимок экрана с ошибкой анализатора и быстрыми действиями по исправлению кода в редакторе.

Настройка уровней серьезности анализатора

Вы можете настроить серьезность правил анализатора в файле EditorConfig или в меню лампочки.

Анализаторы также можно настроить для проверки кода во время сборки и при вводе. Область анализа динамического кода можно настроить только для текущего документа, всех открытых документов или всего решения. Дополнительные сведения см. в разделе "Настройка анализа динамического кода для .NET".

Совет

Ошибки и предупреждения во время сборки из анализаторов кода отображаются только в том случае, если анализаторы установлены в виде пакета NuGet. Встроенные анализаторы (например, IDE0067 и IDE0068) никогда не выполняются во время сборки.

Установка анализаторов внешнего кода

Visual Studio включает основной набор анализаторов Roslyn, которые всегда активны. Если вам нужны дополнительные анализаторы кода, можно установить внешние анализаторы для каждого проекта с помощью пакета NuGet. Некоторые анализаторы также доступны в виде расширения Visual Studio .vsix , в этом случае они применяются к любому решению, которое вы открываете в Visual Studio. Сведения об установке этих двух различных типов анализаторов см. в разделе "Установка анализаторов кода".

Область действия

При установке анализатора в виде пакета NuGet предпочтительный метод применяется только к проекту, в котором установлен пакет NuGet. В противном случае, если вы устанавливаете анализатор как расширение Visual Studio, оно применяется на уровне решения и ко всем экземплярам Visual Studio. В командных средах анализатор, установленный как пакет NuGet, находится в области действия для всех разработчиков, работающих над этим проектом.

Примечание

Сторонние анализаторы поставляются в пакете SDK для .NET. Предпочтительнее включить эти анализаторы из пакета SDK для .NET, а не устанавливать их в виде Microsoft.CodeAnalysis.NetAnalyzersпакета NuGet. Включение анализаторов из пакета SDK для .NET гарантирует автоматическое получение исправлений анализатора и новых анализаторов после обновления пакета SDK. Дополнительные сведения об анализаторах см. в статье "Включение или установка сторонних анализаторов .NET".

Ошибки сборки

Чтобы применить правила во время сборки, с помощью сборок командной строки или непрерывной интеграции (CI) выберите один из следующих вариантов:

  • Создайте проект .NET 5.0 или более поздней версии, который включает анализ кода по умолчанию. Чтобы включить анализ кода для проектов, предназначенных для более ранних версий .NET, задайте для свойства EnableNETAnalyzers значение true.

  • Установите анализаторы в виде пакета NuGet. Если вы устанавливаете анализаторы в качестве расширения Visual Studio, предупреждения и ошибки анализатора не отображаются в отчете о сборке.

Следующий снимок экрана показывает вывод сборки в командной строке при создании проекта, в котором обнаружено нарушение правила анализатора.

Снимок экрана, показывающий вывод MSBuild при нарушении правила в командной строке для разработчиков.

Важность правил

Если требуется настроить серьезность правила анализатора, необходимо установить анализатор в виде пакета NuGet. Невозможно настроить серьезность правил из анализаторов, установленных в качестве расширения Visual Studio.

Дальнейшие шаги


Дополнительные ресурсы