Подтвердить что ты не робот

Исключить файл из анализа StyleCop: тег "auto-generated" игнорируется

В начале файла С# я добавил:

//-----------------------------------------------------------------------
// <copyright company="SomeCompany" file="MyFile.cs">
// Copyright © Some Company, 2011
// </copyright>
// <auto-generated />
//-----------------------------------------------------------------------

Я хочу, чтобы StyleCop пропускал проверку этого файла, поэтому я использовал трюк auto-generated, описанный в других ответах.

Однако после очистки и восстановления моего решения StyleCop продолжает генерировать предупреждения для этого файла. Почему это происходит? Как это можно исправить?

Я использую Microsoft Visual Studio 2008 Professional Edition и StyleCop v4.3.

4b9b3361

Ответ 1

@Frédéric - к сожалению, опция Analyze generated files никак не связана с пропуском файлов с тегом <auto-generated />.

Файлы, содержащие текст <auto-generated />, всегда будут пропускаться независимо от значения параметра.

@Daniel - Я считаю, что вы имеете дело с ошибкой в ​​версии 4.3, выпущенной более года назад и, безусловно, устаревшей. Единственная причина для использования 4.3 заключается только в том, что вы используете Visual Studio 2005, который не поддерживается StyleCop 4.4.

Я настоятельно рекомендую вам обновить до 4.4. Я только что проверил ваш пример и отлично работает.

Ответ 2

Вы можете установить исключения файлов в файле Settings.StyleCop. Файл находится в вашем решении/проекте или в каталоге установки StyleCop.

Затем вы можете использовать регулярное выражение в настройках Parser для определения файлов, которые вы хотите игнорировать

<Parsers>
  <Parser ParserId="Microsoft.StyleCop.CSharp.CsParser">
    <ParserSettings>
      <BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty>
      <CollectionProperty Name="GeneratedFileFilters">
        <Value>\.g\.cs$</Value>
        <Value>\.generated\.cs$</Value>
        <Value>\.g\.i\.cs$</Value>
        <Value>codegen.*\.cs$</Value>
      </CollectionProperty>
    </ParserSettings>
  </Parser>
</Parsers>

В этом случае я хочу игнорировать codegen.whatever.cs

Ответ 3

Отметьте документацию StyleCop. Мой любимый тег <auto-generated /> в верхней части документа или вы можете использовать директиву #region или другие параметры, упомянутые в документах.