Подавление StyleCop - PullRequest
       13

Подавление StyleCop

5 голосов
/ 22 января 2010

Можно ли подавить правила StyleCop в более глобальном формате ... другими словами, не используя только встроенные атрибуты источника?

Ответы [ 2 ]

8 голосов
/ 22 января 2010

Вы можете отключить определенные правила стиля в файле Settings.StyleCop. Например, есть некоторые вещи, встроенные в stylecop, которые не соответствуют нашему стандарту. Например, в моем файле Settings.StyleCop мы имеем:

<Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.ReadabilityRules">
  <Rules>
    <Rule Name="PrefixLocalCallsWithThis">
      <RuleSettings>
        <BooleanProperty Name="Enabled">False</BooleanProperty>
      </RuleSettings>
    </Rule>
  </Rules>
  <AnalyzerSettings />
</Analyzer>

Так, что для переменной-члена или свойства нам не нужно иметь «this». для каждого и каждого.

2 голосов
/ 05 марта 2010

Абсолютно!

Атрибуты источника следует использовать только в самых редких случаях; подавляющее большинство вашей конфигурации StyleCop должно выполняться через StyleCopSettingsEditor (щелкните правой кнопкой мыши проект, выберите «Настройки StyleCop», и откроется один из них).

Это создаст файл Settings.StyleCop для этого проекта в каталоге проекта. Этот файл можно редактировать вручную, как упоминает другой ответ, но я бы никогда не предложил взломать XML в редакторе. StyleCopSettingsEditor - это определенно верный путь.

После того, как вы изменили настройки StyleCop, вы еще не сделали!
Эти настройки будут применяться только к этому одному проекту, и этого может быть недостаточно.
Я лично предлагаю переместить этот файл StyleCop.Settings вверх на один каталог до уровня решения и добавить его в качестве «элемента решения». Затем проверьте этот файл в TFS (или в любой другой системе контроля версий, которую вы используете). Теперь эти настройки StyleCop являются частью всего решения, и каждый получит их, когда сделает «Получить последнюю версию». При необходимости вы можете переопределить параметры решения с помощью параметров проекта (файл StyleCop.Settings на уровне проекта будет переопределять файл на уровне решения).

Единственный способ сделать ваши настройки StyleCop более глобальными, чем это, - либо переместить их еще выше в дерево каталогов (до уровня командного проекта, если вы используете TFS, ненадежно, так как выполнение GetLatest на уровне решения) не будет распространять их среди всех), или перезаписать файл Settings.StyleCop в установочном каталоге StyleCop (еще более ненадежный, поскольку он не может быть обработан системой контроля версий и должен быть отправлен по электронной почте всем или чему-либо).

В целом, есть определенные способы сделать настройки стиля вашей команды такими глобальными, какими вы хотите, у вас есть много вариантов.

...