StyleCop抑制

5

有没有可能以更全局的方式抑制StyleCop规则,换句话说,不仅使用源内行属性?

2个回答

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
<BooleanProperty Name="Enabled">False</BooleanProperty> 这是我见过的最愚蠢的 XML。 - Colonel Panic
<BooleanProperty Name="AgreeWith@ColonelPanic">True</BooleanProperty> - McAden

2

当然可以!

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

这将在项目目录中为该项目创建一个Settings.StyleCop文件。该文件可以像其他答案中提到的那样手动编辑,但我不建议在编辑器中修改XML文件。StyleCopSettingsEditor绝对是最好的选择。

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

使您的StyleCop设置更加全局的唯一方法是将它们移动到目录树中更高的位置(如果您正在使用TFS,则将其移动到团队项目级别,但不可靠,因为在解决方案级别进行“获取最新”不会将其分发给每个人),或者覆盖StyleCop安装目录中的Settings.StyleCop文件(更加不可靠,因为它无法通过源代码控制处理,而必须通过电子邮件发送给每个人等方式来完成)。

总体而言,肯定有许多方法可以使您团队的特定StyleCop设置变得尽可能全局化,您有很多选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接