是否有可能在更全局的内容中压制StyleCop规则......换句话说,不仅仅使用源内联属性?
答案 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设置成为您想要的全局,您有很多选择。