Настройка набора правилCustomize a rule set

Вы можете создать настраиваемый набор правил в соответствии с потребностями конкретного проекта для анализа кода.You can create a custom rule set to meet specific project needs for code analysis.

Создание набора настраиваемых правил на основе существующего набора правилCreate a custom rule set from an existing rule set

Чтобы создать настраиваемый набор правил, можно открыть набор встроенных правил в редакторе набора правил.To create a custom rule set, you can open a built-in rule set in the rule set editor. После этого можно добавить или удалить определенные правила, а также изменить действие, возникающее при нарушении правила —for примере, отобразить предупреждение или ошибку.From there, you can add or remove specific rules, and you can change the action that occurs when a rule is violated—for example, show a warning or an error.

  1. В Обозреватель решенийщелкните правой кнопкой мыши проект и выберите пункт свойства.In Solution Explorer, right-click the project and then select Properties.

  2. На странице Свойства выберите вкладку анализ кода .On the Properties pages, select the Code Analysis tab.

  1. В раскрывающемся списке выполнить этот набор правил выполните одно из следующих действий.In the Run this rule set drop-down list, do one of the following:
  1. В раскрывающемся списке активные правила выполните одно из следующих действий.In the Active rules drop-down list, do one of the following:
  • Выберите набор правил, который требуется настроить.Select the rule set that you want to customize.

    - или -- or -

  • Выберите <Browse > , чтобы указать существующий набор правил, отсутствующий в списке.Select <Browse> to specify an existing rule set that is not in the list.

  1. Выберите Открыть , чтобы отобразить правила в редакторе набора правил.Select Open to display the rules in the rule set editor.

Note

Если у вас есть проект .NET Core или .NET Standard, процесс немного отличается, так как отсутствует вкладка свойств анализ кода . выполните действия, чтобы скопировать предопределенный набор правил в проект и установить его в качестве активного набора правил.If you have a .NET Core or .NET Standard project, the process is a little different because there's no Code Analysis property tab. Follow the steps to copy a predefined rule set to your project and set it as the active rule set. После копирования набора правил его можно изменить в редакторе набора правил Visual Studio , открыв его из Обозреватель решений.After you've copied over a rule set, you can edit it in the Visual Studio rule set editor by opening it from Solution Explorer.

Создать новый набор правилCreate a new rule set

Новый файл набора правил можно создать в диалоговом окне " Создание файла ":You can create a new rule set file from the New File dialog:

  1. Выберите файл > создать файл > или нажмите клавиши CTRL +N.Select File > New > File, or press Ctrl+N.

  2. В диалоговом окне новый файл выберите категорию Общие слева и выберите набор правил анализа кода.In the New File dialog box, select the General category on the left, and then select Code Analysis Rule Set.

  3. Нажмите кнопку Открыть.Select Open.

    Новый RuleSet – файл откроется в редакторе набора правил.The new .ruleset file opens in the rule set editor.

Создание настраиваемого набора правил на основе нескольких наборов правилCreate a custom rule set from multiple rule sets

Note

Следующая процедура не применяется к проектам .NET Core, у которых нет вкладки свойств анализ кода .The following procedure does not apply to .NET Core projects, which don't have a Code Analysis property tab.

  1. В Обозреватель решенийщелкните правой кнопкой мыши проект и выберите пункт свойства.In Solution Explorer, right-click the project and then select Properties.

  2. На странице Свойства выберите вкладку анализ кода .On the Properties pages, select the Code Analysis tab.

  1. Выберите <Choose несколько наборов правил, > на выполнение этого набора правил.Select <Choose multiple rule sets> from Run this rule set.
  1. Выберите <Choose несколько наборов правил > из активных правил.Select <Choose multiple rule sets> from Active rules.
  1. В диалоговом окне Добавление или удаление наборов правил выберите наборы правил, которые необходимо включить в новый набор правил.In the Add or Remove Rule Sets dialog box, select the rule sets you want to include in your new rule set.

    Диалоговое окно «Добавление или удаление наборов правил»

  2. Выберите Сохранить как, введите имя для RuleSet -файла и нажмите кнопку сохранить.Select Save As, enter a name for the .ruleset file, and then select Save.

    Новый набор правил выбран в списке выполнить этот набор правил .The new rule set is selected in the Run this rule set list.

  3. Выберите Открыть , чтобы открыть новый набор правил в редакторе набора правил.Select Open to open the new rule set in the rule set editor.

Приоритет правилаRule precedence

  • Если одно и то же правило присутствует в наборе правил с разными уровнями серьезности несколько раз, компилятор выдает ошибку.If the same rule is listed two or more times in a rule set with different severities, the compiler generates an error. Пример:For example:

    <RuleSet Name="Rules for ClassLibrary21" Description="Code analysis rules for ClassLibrary21.csproj." ToolsVersion="15.0">
       <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
         <Rule Id="CA1021" Action="Warning" />
         <Rule Id="CA1021" Action="Error" />
       </Rules>
    </RuleSet>
    
  • Если одно и то же правило указано в наборе правил с одинаковой степенью серьезности, в Список ошибокможет появиться следующее предупреждение:If the same rule is listed two or more times in a rule set with the same severity, you may see the following warning in the Error List:

    CA0063: не удалось загрузить файл набора правил "[your]. RuleSet" или один из его зависимых файлов набора правил. Файл не соответствует схеме набора правил.CA0063 : Failed to load rule set file '[your].ruleset' or one of its dependent rule set files. The file does not conform to the rule set schema.

  • Если набор правил включает дочерний набор правил с помощью тега include , а дочерний и родительский правила содержат одно и то же правило, но с разными уровнями серьезности, приоритет имеет уровень серьезности в родительском наборе правил.If the rule set includes a child rule set by using an Include tag, and the child and parent rule sets both list the same rule but with different severities, then the severity in the parent rule set takes precedence. Пример:For example:

    <!-- Parent rule set -->
    <?xml version="1.0" encoding="utf-8"?>
    <RuleSet Name="Rules for ClassLibrary21" Description="Code analysis rules for ClassLibrary21.csproj." ToolsVersion="15.0">
       <Include Path="classlibrary_child.ruleset" Action="Default" />
       <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
         <Rule Id="CA1021" Action="Warning" /> <!-- Overrides CA1021 severity from child rule set -->
       </Rules>
    </RuleSet>
    
    <!-- Child rule set -->
    <?xml version="1.0" encoding="utf-8"?>
    <RuleSet Name="Rules from child" Description="Code analysis rules from child." ToolsVersion="15.0">
       <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
         <Rule Id="CA1021" Action="Error" />
       </Rules>
    </RuleSet>
    

Имя и описаниеName and description

Чтобы изменить отображаемое имя набора правил, открытого в редакторе, откройте окно « Свойства », выбрав в строке меню вид > Свойства .To change the display name of a rule set that's open in the editor, open the Properties window by selecting View > Properties Window on the menu bar. Введите отображаемое имя в поле имя .Enter the display name in the Name box. Можно также ввести описание набора правил.You can also enter a description for the rule set.

Следующие шагиNext steps

Теперь, когда у вас есть набор правил, необходимо настроить правила, добавив или удалив правила или изменив серьезность нарушений правил.Now that you have a rule set, the next step is to customize the rules by adding or removing rules or modifying the severity of rule violations.

См. такжеSee also