Использование наборов правил для группирования правил анализа кода

При настройке анализа кода в Visual Studio можно выбрать из списка встроенных наборов правил. Набор правил — это группирование правил анализа кода, которые определяют целевые проблемы и конкретные условия для этого проекта. Например, можно применить набор правил, предназначенный для сканирования кода для общедоступных API. Можно также применить набор правил, включающий все доступные правила.

Можно настроить набор правил, добавив или удалив правила, или изменив серьезность правил, чтобы они отображались как предупреждения или ошибки в списке ошибок. Настраиваемые наборы правил могут выполнять потребность в конкретной среде разработки. При настройке набора правил редактор набора правил предоставляет средства поиска и фильтрации, которые помогут вам в процессе.

Наборы правил доступны для анализа управляемого кода, устаревшего анализа управляемого кода и анализа кода C++.

Примечание.

Начиная с Visual Studio 2019 версии 16.3, можно использовать файлы EditorConfig для настройки правил для анализа исходного кода .NET, но не для анализа устаревших версий. Дополнительные сведения см. в разделе EditorConfig и наборов правил в разделе часто задаваемых вопросов .

Формат набора правил

Набор правил указывается в формате XML в файле набора правил. Правила, состоящие из идентификатора и действия, группируются по идентификатору анализатора и пространству имен в файле.

Содержимое файла набора правил выглядит примерно так:

<RuleSet Name="Rules for Hello World project" Description="These rules focus on critical issues for the Hello World app." ToolsVersion="10.0">
  <Localization ResourceAssembly="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.dll" ResourceBaseName="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.Localized">
    <Name Resource="HelloWorldRules_Name" />
    <Description Resource="HelloWorldRules_Description" />
  </Localization>
  <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
    <Rule Id="CA1001" Action="Warning" />
    <Rule Id="CA1009" Action="Warning" />
    <Rule Id="CA1016" Action="Warning" />
    <Rule Id="CA1033" Action="Warning" />
  </Rules>
  <Rules AnalyzerId="Microsoft.CodeQuality.Analyzers" RuleNamespace="Microsoft.CodeQuality.Analyzers">
    <Rule Id="CA1802" Action="Error" />
    <Rule Id="CA1814" Action="Info" />
    <Rule Id="CA1823" Action="None" />
    <Rule Id="CA2217" Action="Warning" />
  </Rules>
</RuleSet>

Совет

Проще изменить набор правил в графическом редакторе набора правил, чем вручную.

Указание набора правил для проекта

Набор правил для проекта определяется свойством CodeAnalysisRuleSet в файле проекта Visual Studio. Например:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  ...
  <CodeAnalysisRuleSet>HelloWorld.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>