我有从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. Visual Studio:如何禁用代码分析?
- 2. 代码分析生成的代码生成文件 - 如何抑制警告?
- 3. Visual Studio代码 - 生成桶文件(Index.ts)自动
- 4. 使用StyleCop分析器的Visual Studio 2015代码分析
- 5. 如何暂时禁用Visual Studio自动生成的事件?
- 6. 如何在Visual Studio 2008中禁用XAML文件的“代码分析”?
- 7. 如何在生成的代码中抑制代码分析?
- 8. MonoTouch如何自动生成XIB代码?
- 9. 如何禁止DataGridView中的自动生成的列?
- 10. Android:如何从布局文件自动生成Java代码?
- 11. VS2010代码分析。禁止消息CA1051:DoNotDeclareVisibleInstanceFields所有类成员
- 12. 如何禁用项目的自动生成的配置文件?
- 13. Visual Studio - 自动生成文件
- 14. 生成文件的视觉工作室代码分析
- 15. 如何自动完成tag.className在Visual Studio代码如Sublime文本
- 16. 自动生成html代码
- 17. 自动生成代码
- 18. 自动生成jquery代码
- 19. 如何自动生成C++头文件
- 20. 从.aspx文件自动生成代码隐藏文件
- 21. 如何防止Visual Studio代码分析在dll上运行?
- 22. 分割自动生成的C#文件
- 23. Visual Studio代码自动头文件
- 24. Visual Studio代码分析死锁
- 25. 是否有可能禁用android studio生成自己的文件?
- 26. 在Visual Studio中自动生成的数据库代码
- 27. Selenium C#为Visual Studio 2010自动生成的代码
- 28. 如何禁用我的测试插件中的代码生成?
- 29. 停止从Android Studio 2.2同步生成并自动生成
- 30. 如何强制SilverLight在生成的代码文件夹中生成代码?