2011-02-17 73 views
20

在C#文件的開頭,我還補充說:從了StyleCop分析排除文件:「自動生成」的標籤被忽略

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

我想了StyleCop跳過檢查這個文件,所以我用了auto-generatedother answers解釋的詭計。

但是,在清理並重建我的解決方案後,StyleCop不斷爲此文件生成警告。爲什麼會發生?它如何被修復?

我使用的是Microsoft Visual Studio 2008 Professional Edition和StyleCop v4.3。

+1

你驗證「分析生成的文件」文件選項在StyleCop項目設置中未選中? – 2011-02-17 10:50:58

+0

@Frédéric:謝謝您的建議。是的,這個選項沒有被選中。 – 2011-02-17 10:58:36

回答

21

@Frédéric - 不幸的是,Analyze generated files選項不以某種方式連接跳過<auto-generated />標籤的文件。

無論設置的值如何,包含<auto-generated />文本的文件都將被跳過。

@Daniel - 我相信你在處理一個比一年前發佈的4.3版本的bug並且現在已經過時了。只有使用StyleCop 4.4不支持的Visual Studio 2005才能使用4.3。

我強烈建議你升級到4.4 - 我剛剛檢查過你的例子,它工作正常。

0

檢查StyleCop documentation。我最喜歡的是文檔頂部的<auto-generated />標籤,或者您可以使用#region指令或文檔中提到的其他選項。

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