2010-01-22 57 views
5

是否可以将StyleCop规则压制在更全局的内容中......换言之,不仅仅是使用源内联属性?StyleCop抑制

回答

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> 

,使得在一个成员变量或属性,我们不必有为每一个人。

+0

而我却陷入低调的原因? – McAden 2010-04-07 20:13:41

+0

' False'必须是我见过的最傻的xml。 – 2013-09-27 08:48:20

+0

' True' – McAden 2013-09-27 16:48:57

2

绝对!

来源属性只应用于最罕见的情况下,绝大多数StyleCop配置应该通过StyleCopSettingsEditor完成(右键单击一个项目,选择“StyleCop设置”,它将打开一个) 。

这将在项目目录中为该项目创建一个Settings.StyleCop文件。该文件可以作为其他答案提及的手工编辑,但我绝不会建议在编辑器中对XML进行黑客攻击。 StyleCopSettingsEditor绝对是您的选择。

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

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

总体而言,您可以根据自己的需要为团队制定特定StyleCop设置的绝对路径,您有很多选择。