我有從ANTLR生成的C#代碼。如何告訴stylecop/fxcop/visual studio的代碼分析在檢查時忽略這個文件?如何禁止自動生成文件的stylecop/fxcop/visual studio代碼分析?
回答
對於FxCop,權威性方法是用[GeneratedCode]
屬性修飾您的代碼並禁用選項以檢查生成的代碼。 VS和/或FxCop版本的細節有所不同;看到這篇博文correct usage of the attributes。
了StyleCop忽略屬性,但你有一些其他選項:
- 文件命名爲「Whatever.Designer.cs」,並設置在StyleCop.settings文件選項。
- 在包含
<auto-generated />
的文件中包含一個XML標頭。
此外,這兩個工具的最新版本似乎忽略在其名稱中包含短語「生成的代碼」的區域內的代碼。例如,在你的Windows窗體*了.Designer.cs文件,你會看到:
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent ()
{
// stuff here
}
#endregion
代碼分析,並與StyleCop的都忽略了區域內的代碼,但仍將運行對這個文件的剩餘部分。 (如果設置了「忽略設計器文件」選項,StyleCop會忽略整個文件,因爲它以.Designer.cs結尾。)
這兩個工具似乎無法就如何達成一致忽略代碼(幾乎和自動生成的代碼的數量一樣令人沮喪 - 它不會妨礙自己正確排除它 - 在這裏看看你,EF)。問題在於代碼分析檢查你編譯的代碼(它具有屬性元數據但沒有評論),而StyleCop檢查你的源代碼(其中元數據屬性的範圍很難跟蹤,儘管它仍然是可能的)。
在我的模板,我傾向於使用的選項的混合物:包括我在它與<auto-generated>
標籤了StyleCop感知頭,然後裝點每個碼元與[GeneratedCode]
,它似乎趕上了一切。 (可能不用說,我的自動生成的代碼也很難不違反規則:) :)
另一種方法可能是使用@headers。
@lexer::header {
#pragma warning disable 1591
}
@parser::header {
#pragma warning disable 1591
}
好,我注意到ANTLR生成的文件是「部分」,所以我剛創建的第二文件,添加了相同的類也爲「部分」,而無需任何字段或方法,所述類,但添加的以下屬性的類:
[GeneratedCodeAttribute( 「ANTLR」, 「3.0.0.0」)]
然後我檢查在該文件中,進入TFS源控制。像這樣,該類具有生成的代碼屬性集,CodeAnalysis/FxCop將忽略整個類。但是你必須配置CodeAnalysis,不檢查自動生成的代碼(適當的複選框設置爲選中)。
- 1. 如何防止FxCop分析自動生成的代碼?
- 2. Visual Studio:如何禁用代碼分析?
- 3. 代碼分析生成的代碼生成文件 - 如何抑制警告?
- 4. Visual Studio代碼 - 生成桶文件(Index.ts)自動
- 5. 使用StyleCop分析器的Visual Studio 2015代碼分析
- 6. 如何暫時禁用Visual Studio自動生成的事件?
- 7. 禁用代碼分析在Visual Studio 2012
- 8. 如何在Visual Studio 2008中禁用XAML文件的「代碼分析」?
- 9. 如何在生成的代碼中抑制代碼分析?
- 10. 動態生成代碼的代碼覆蓋率,分析和性能分析
- 11. MonoTouch如何自動生成XIB代碼?
- 12. 如何禁止DataGridView中的自動生成的列?
- 13. Android:如何從佈局文件自動生成Java代碼?
- 14. 如何停止ggts添加分號到自動生成的groovy代碼?
- 15. 解析自動生成的html文件
- 16. 如何禁止由生成失敗的類導致的代碼生成錯誤?
- 17. 將自動生成的代碼文件拆分爲單獨的類文件
- 18. 如何禁止所有類型成員的代碼分析消息?
- 19. VS2010代碼分析。禁止消息CA1051:DoNotDeclareVisibleInstanceFields所有類成員
- 20. Visual Studio - 自動生成文件
- 21. 用於啓用/禁用的Visual Studio 2010插件代碼分析
- 22. 如何禁用項目的自動生成的配置文件?
- 23. 如何自動完成tag.className在Visual Studio代碼如Sublime文本
- 24. 生成文件的視覺工作室代碼分析
- 25. 自動生成html代碼
- 26. 自動生成代碼
- 27. 自動生成jquery代碼
- 28. XCode自動代碼生成
- 29. 自動生成代碼
- 30. 自動生成EAN13代碼