我剛剛就Service References
和Xml summary errors
詢問了有關自動生成代碼的類似question。答案已發佈,表明我可以將Service Reference
添加到自己的項目中,然後完全避免Xml
彙總警告和Stylecop
錯誤。Stylecop爲Reference.cs文件抑制錯誤
但我意識到,我能夠通過設置來Service Reference
到Internal
繞過Xml
問題,我現在貼在StyleCop
錯誤。
我正在使用FxCop
版本10.0。
在我的項目的屬性,在代碼分析選項卡上,我已檢查了選項
從生成的代碼 (只有管理)
此外,從看
禁止結果生成的代碼在Reference.cs文件中,我看到該代碼裝飾有以下屬性:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
..whi ch Stylecop
應該跳過,對嗎?雖然這不起作用,但我仍然在爲生成的代碼獲取StyleCop
錯誤。
編輯:下面的頭還可以在生成的代碼中發現:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18033
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
那麼,爲什麼是不是被忽略了?
我也發現了這個question並用我的StyleCop
setings以下嘗試:
<CollectionProperty Name="GeneratedFileFilters">
<Value>Reference\.cs$</Value>
</CollectionProperty>
但這也不管用,我一直在努力與正則表達式,但嘗試下面的值添加到上面的例子讓Stylecop忽略我生成的代碼。
Reference.cs
\Reference\.cs
\Reference\.cs$
Reference\.cs$
有誰知道如何抑制所有Stylecop
錯誤的Reference.cs
文件?
EDIT2:顯示爲Reference.cs文件中的錯誤:
錯誤1個CA1812:Microsoft.Performance:...是一個內部類, 顯然從來沒有實例化。如果是這樣,請從 組件中刪除代碼。如果此類只包含靜態方法,則 考慮添加一個私有構造函數以防止編譯器從 生成默認構造函數。
錯誤2 CA2239:Microsoft.Usage:添加 'OnDeserialized私人無效 (的StreamingContext)' 方法鍵入...並與System.Runtime.Serialization.OnDeserializedAttribute屬性它 。
錯誤4 CA1811:Microsoft.Performance:...似乎沒有 上游公共或受保護的呼叫者。
我有這3種類型的錯誤中的27個。
編輯3:我有Style/Fx警察設置運行構建。我在Build Events
選項卡中添加在構建選項卡中的條件編譯符號CODE_ANALYSIS
和
"$(ProgramFiles)\Microsoft FxCop 10.0\FxCopCmd.exe" /file:"$(TargetPath)" /ruleid:-"Microsoft.Design#CA1006" /ruleid:-"Microsoft.Design#CA1020" /console /cul:en-GB /q /assemblyCompareMode:StrongNameIgnoringVersion
...在Post-build event command line
。
你能否詳細說明你所看到的錯誤? – Mightymuke 2013-02-14 20:57:58
@Mightmuke,請參閱編輯2 – DevDave 2013-02-15 11:08:19
當我選擇「從生成的代碼中取消結果」選項時,它似乎可以正常工作(儘管我沒有括號中的文字,我在想如何以及爲什麼會出現這種情況) 。你是從IDE(又名代碼分析)還是從FxCop跑步者運行?如果來自IDE,你有幾個項目?從IDE運行時出現問題,因爲第一個項目的代碼分析設置會覆蓋「子」項目的設置(至少在VS2010中)。如果你只有一個項目,這當然不會成爲問題。 – Mightymuke 2013-02-15 18:03:30