有没有可能以更全局的方式抑制StyleCop规则,换句话说,不仅使用源内行属性?
<Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.ReadabilityRules">
<Rules>
<Rule Name="PrefixLocalCallsWithThis">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
<AnalyzerSettings />
</Analyzer>
当然可以!
只有在极少数情况下才应该使用源属性,绝大多数的StyleCop配置都应该通过StyleCopSettingsEditor完成(右键单击项目,选择“StyleCop Settings”,这将打开一个编辑器)。
这将在项目目录中为该项目创建一个Settings.StyleCop文件。该文件可以像其他答案中提到的那样手动编辑,但我不建议在编辑器中修改XML文件。StyleCopSettingsEditor绝对是最好的选择。
一旦您修改了StyleCop设置,您还没有完成!
这些设置仅适用于该项目,这可能显然是不够的。
我个人建议将该StyleCop.Settings文件移到上一级目录,即解决方案级别,并将其添加为“解决方案项”。然后将该文件检入TFS(或您正在使用的任何源代码控制系统)。现在,这些StyleCop设置是整个解决方案的一部分,并且每个人在进行“获取最新”时都会得到它们。如果必要,您可以使用项目设置覆盖解决方案设置(在项目级别的StyleCop.Settings文件将覆盖解决方案级别的文件)。
使您的StyleCop设置更加全局的唯一方法是将它们移动到目录树中更高的位置(如果您正在使用TFS,则将其移动到团队项目级别,但不可靠,因为在解决方案级别进行“获取最新”不会将其分发给每个人),或者覆盖StyleCop安装目录中的Settings.StyleCop文件(更加不可靠,因为它无法通过源代码控制处理,而必须通过电子邮件发送给每个人等方式来完成)。
总体而言,肯定有许多方法可以使您团队的特定StyleCop设置变得尽可能全局化,您有很多选择。
<BooleanProperty Name="Enabled">False</BooleanProperty>
这是我见过的最愚蠢的 XML。 - Colonel Panic<BooleanProperty Name="AgreeWith@ColonelPanic">True</BooleanProperty>
- McAden