如何在解决方案中全局抑制StyleCop警告?
使用Jenkins(连续构建和集成工具)不断构建解决方案,并应用所有StyleCop规则。该解决方案使用TAB字符而不是4个空格,因为它是我的开发团队采用的标准。因此,StlyeCop会抛出几个SA1027警告。
如何从Jenkins删除SA1027警告?那也有帮助。
在每个C#文件上给出SuppressMessage看起来不太好看。这就是为什么我在寻找全局抑制方法。
答案 0 :(得分:4)
似乎您可能需要更改StyleCop配置(设置),而不是全局禁止某些规则。 StyleCop设置是“通过文件系统继承的”,因此您只需在解决方案文件夹级别创建适当的设置文件。
关于特定的“制表符与空格”主题,您不仅可以关闭需要空格的StyleCop规则,还可以使用包含需要制表符的规则的一些StyleCop插件(如StyleCop +)。
答案 1 :(得分:3)
StyleCop不支持全局抑制规则的概念。它需要将SuppressMessage
属性放在给定的代码元素上。
来自源分析博客(Source)
StyleCop不支持全局抑制或文件级抑制的概念。必须将抑制放在代码元素上。
一种选择是简单地关闭您不感兴趣的规则。这是全局抑制的首选方法。
答案 2 :(得分:1)
VS2015 + StyleCop分析仪:
StyleCop.Settings
不再使用了,但您仍然可以执行JaredPar所说的内容并在全局范围内关闭特定警告。通过修改当前规则集(在项目的属性GUI>代码分析>打开下)并将更改保存为新规则集来执行此操作。
答案 3 :(得分:0)
文件Settings.StyleCop
应包含:
<StyleCopSettings Version="105">
<Analyzers>
<Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
<Rules>
<Rule Name="TabsMustNotBeUsed">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
<AnalyzerSettings />
</Analyzer>
</Analyzers>
</StyleCopSettings>
答案 4 :(得分:0)
找到您的.ruleset文件。 (在“解决方案项目”下或在任何位置)将Action
更改为None
。
<Rule Id="SA1027" Action="None" />