StyleCop抑制

时间:2010-01-22 18:56:23

标签: c# .net visual-studio stylecop

是否有可能在更全局的内容中压制StyleCop规则......换句话说,不仅仅使用源内联属性?

2 个答案:

答案 0 :(得分:8)

您可以使用Settings.StyleCop文件禁用某些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”。为每一个人。

答案 1 :(得分:2)

绝对!

源属性应该只在极少数情况下使用,绝大多数StyleCop配置应该通过StyleCopSettingsEditor完成(右键单击一个项目,选择“StyleCop Settings”,这将打开一个)。

这将在项目目录中为该项目创建一个Settings.StyleCop文件。该文件可以像其他答案一样进行手工编辑,但我绝不会建议在编辑器中破解XML。 StyleCopSettingsEditor绝对是最佳选择。

一旦你修改了StyleCop设置,你就没有完成!
这些设置仅适用于那个项目,这可能肯定是不够的 我个人建议将StyleCop.Settings文件移动到一个目录到解决方案级别并将其添加为“解决方案项”。然后将该文件检入TFS(或您正在使用的任何源控制系统)。现在,那些StyleCop设置是整个解决方案的一部分,每个人都会在他们做“获取最新”时获得它们。如有必要,您可以使用项目设置覆盖解决方案设置(项目级别的StyleCop.Settings文件将覆盖解决方案级别的文件)。

使StyleCop设置更全局化的唯一方法是在目录树中将它们向上移动得更高(如果您使用TFS,则达到Team Project级别,因为在解决方案级别执行GetLatest是不可靠的不会将它们分发给每个人),或者覆盖StyleCop安装目录中的Settings.StyleCop文件(更不可靠,因为源控件无法处理,而是必须通过电子邮件发送给所有人或其他人)。

总的来说,有一些方法可以让团队的特定StyleCop设置成为您想要的全局,您有很多选择。