如何抑制生成代码的代码分析?

我有一个Silverlight项目,其中包含生成的Reference.cs文件,其中包含服务引用。该类归属于[GeneratedCode],在项目配置中,生成的代码的代码分析被禁用(发布和调试)。

我做错了什么?

也许您应该尝试适用于StyleCop的解决方案:

1)将“.Designer.cs”放在您不希望StyleCop检查的文件名的末尾。 或者调用类,以及包含它的文件“NativeMethods”。 确保在StyleCop设置中取消选中“分析设计器文件”。 在这种情况下,将绕过整个文件。 您不必为某些类型的Microsoft设计器生成的代码(如Windows窗体设计器)执行此操作,因为它们自动属于以下选项的条件:

2)使用名称中包含“生成代码”的C#区域包围不需要的代码段。 默认情况下,StyleCop不会检查生成的代码(但请确保未选中“分析生成的文件”设置)。 在这种情况下,您仍然可以validation为Windows窗体控件生成的字段的名称。

#region Windows Form Designer generated code

...

#endregion

3)要忽略整个生成的文件,请检查您的生成器是否将“”XML元素放入StyleCop-conform文件头中,如下所示:

//

4)最后,您可以将MSBuild Compile项的“ExcludeFromSourceAnalysis”属性设置为true,该属性表示需要从分析中排除的文件。 它仅在您使用提供的“Microsoft.SourceAnalysis.Targets”目标文件时才有效,否则您必须自己为所需的源文件提供StyleCop MSBuild任务。

资料来源: http : //shishkin.wordpress.com/2008/07/08/stylecop-how-to-ignore-generated-code/