Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Exclude file from StyleCop analysis: "auto-generated" tag is ignored

Tags:

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.

like image 910
Daniel Daranas Avatar asked Feb 17 '11 10:02

Daniel Daranas


2 Answers

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

like image 54
Oleg Shuruev Avatar answered Sep 21 '22 13:09

Oleg Shuruev


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

like image 28
Chris Avatar answered Sep 19 '22 13:09

Chris