26

At the beginning of a C# file, I have added:

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

I want StyleCop to skip checking this file, so I used the auto-generated trick explained in other answers.

However, after cleaning and rebuilding my solution, StyleCop keeps generating warnings for this file. Why does this happen? How can it be fixed?

I am using Microsoft Visual Studio 2008 Professional Edition and StyleCop v4.3.

Community
  • 1
  • 1
Daniel Daranas
  • 22,454
  • 9
  • 63
  • 116

3 Answers3

25

@Frédéric - unfortunately, Analyze generated files option is not somehow connected with skipping files with <auto-generated /> tag.

Files containing <auto-generated /> text will always be skipped regardless the value of the setting.

@Daniel - I believe that you deal with a bug in version 4.3 which was released more than a year ago and is definitely obsolete now. The only reason to use 4.3 is only if you use Visual Studio 2005, which is not supported by StyleCop 4.4.

I strongly recommend you upgrading to 4.4 - I've just checked your example and it works fine.

Oleg Shuruev
  • 1,339
  • 8
  • 10
  • 3
    doesn't work for me. I have version 4.4.3. What else could be wrong about it? – Sören Apr 09 '11 at 02:24
  • 1
    @Sören, Note if you have at least one empty not starting with `//` in the header marked as , Stylecop does not consider it as auto generated. And Microsoft includes bunch of empty lines in their auto-generated files – YMC Oct 10 '13 at 20:42
3

You can set file exclusions within the Settings.StyleCop file. The file is located in to your solution / project or in your StyleCop install directory.

You can then use regex within the Parser settings to define files you want to ignore

<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>

In this case I want to ignore codegen.whatever.cs

Chris
  • 26,744
  • 48
  • 193
  • 345
1

Check StyleCop documentation. My favourite is <auto-generated /> tag on the top of the document or you can use #region directive or other options mentioned in the docs.

Ludwo
  • 6,043
  • 4
  • 32
  • 48