Настройка набора правил

Можно создать настраиваемый набор правил для удовлетворения конкретных потребностей проекта для анализа кода.

Создание настраиваемого набора правил из существующего набора правил

Чтобы создать настраиваемый набор правил, можно открыть встроенный набор правил в редакторе набора правил. После этого можно добавить или удалить определенные правила, и можно изменить действие, которое возникает при нарушении правила, например отображение предупреждения или ошибки.

  1. В Обозреватель решений щелкните проект правой кнопкой мыши и выберите пункт "Свойства".

  2. На страницах "Свойства" выберите вкладку "Анализ кода".

  3. В раскрывающемся списке "Активные правила " выполните одно из следующих действий.

    • Выберите набор правил, который требуется настроить.

      - или -

    • Нажмите кнопку <"Обзор"> , чтобы указать существующий набор правил, который не находится в списке.

  4. Выберите "Открыть ", чтобы отобразить правила в редакторе набора правил.

Примечание.

Если у вас есть проект .NET Core или .NET Standard, процесс немного отличается, так как вкладка "Анализ кода" в свойствах проекта не поддерживает одинаковые параметры. Выполните действия, чтобы скопировать предопределенное правило в проект и задать его в качестве активного набора правил. После копирования набора правил его можно изменить в редакторе набора правил Visual Studio, открыв его из Обозреватель решений.

Создание нового набора правил

Файл набора правил можно создать из диалогового окна "Новый файл ":

  1. Выберите "Создать файл>"> или нажмите клавиши CTRL+N.

  2. В диалоговом окне "Новый файл" выберите категорию "Общие" слева и выберите набор правил анализа кода.

  3. Выберите Открыть.

    Новый файл набора правил открывается в редакторе набора правил.

Создание настраиваемого набора правил из нескольких наборов правил

Примечание.

Следующая процедура не применяется к проектам .NET Core или .NET Standard, которые не поддерживают те же функции на вкладке свойств анализа кода.

  1. В Обозреватель решений щелкните проект правой кнопкой мыши и выберите пункт "Свойства".

  2. На страницах "Свойства" выберите вкладку "Анализ кода".

  3. Выберите выбор нескольких наборов> правил из активных правил.<

  4. В диалоговом окне "Добавление или удаление наборов правил" выберите наборы правил, которые необходимо включить в новый набор правил.

    Add or remove rule sets dialog box

  5. Выберите "Сохранить как", введите имя файла набора правил и нажмите кнопку "Сохранить".

    В списке "Запуск этого набора правил" выбран новый набор правил.

  6. Нажмите кнопку "Открыть ", чтобы открыть новый набор правил в редакторе набора правил.

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

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

    <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>
    
  • Если одно правило указано два или более раз в наборе правил с одинаковым уровнем серьезности, в списке ошибок может появить следующее предупреждение:

    CA0063: не удалось загрузить файл набора правил "[your].ruleset" или один из зависимых файлов набора правил. Файл не соответствует схеме набора правил.

  • Если набор правил содержит дочерний набор правил с помощью тега Include , а дочерний и родительский правило задают оба списка одинаковое правило, но с разными уровнями серьезности, то уровень серьезности в родительском наборе правил имеет приоритет. Например:

    <!-- 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>
    

Имя и описание

Чтобы изменить отображаемое имя набора правил, открываемого в редакторе, откройте окно свойств, выбрав окно "Просмотр>свойств" в строке меню. Введите отображаемое имя в поле "Имя ". Можно также ввести описание набора правил.

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

Теперь, когда у вас есть набор правил, следующим шагом является настройка правил путем добавления или удаления правил или изменения серьезности нарушений правил.