从StyleCop分析中排除文件:忽略“自动生成”标记

时间:2011-02-17 10:46:03

标签: c# stylecop generated-code

在C#文件的开头,我添加了:

//-----------------------------------------------------------------------
// <copyright company="SomeCompany" file="MyFile.cs">
// Copyright © Some Company, 2011
// </copyright>
// <auto-generated />
//-----------------------------------------------------------------------

我希望StyleCop跳过检查此文件,因此我使用了other answers中解释的auto-generated技巧。

但是,在清理并重建我的解决方案后,StyleCop会不断为此文件生成警告。为什么会这样?如何解决?

我使用的是Microsoft Visual Studio 2008专业版和StyleCop v4.3。

3 个答案:

答案 0 :(得分:22)

@Frédéric - 遗憾的是,Analyze generated files选项与以<auto-generated />标记跳过文件无关联。

无论设置的值如何,都将跳过包含<auto-generated />文本的文件。

@Daniel - 我相信你会处理一年多前发布的版本4.3中的错误,现在肯定已经过时了。使用4.3的唯一原因仅在于您使用StyleCop 4.4不支持的Visual Studio 2005。

我强烈建议您升级到4.4 - 我刚检查了您的示例,它运行正常。

答案 1 :(得分:2)

您可以在Settings.StyleCop文件中设置文件排除。该文件位于您的解决方案/项目或StyleCop安装目录中。

然后,您可以在Parser设置中使用正则表达式来定义要忽略的文件

<Parsers>
  <Parser ParserId="Microsoft.StyleCop.CSharp.CsParser">
    <ParserSettings>
      <BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty>
      <CollectionProperty Name="GeneratedFileFilters">
        <Value>\.g\.cs$</Value>
        <Value>\.generated\.cs$</Value>
        <Value>\.g\.i\.cs$</Value>
        <Value>codegen.*\.cs$</Value>
      </CollectionProperty>
    </ParserSettings>
  </Parser>
</Parsers>

在这种情况下,我想忽略codegen.whatever.cs

答案 2 :(得分:0)

检查StyleCop documentation。我最喜欢的是文档顶部的<auto-generated />标记,或者您可以使用#region指令或文档中提到的其他选项。