Excluding Code Analysis rule in source在一个我正在使用FxCop的项目中,向我展示了Windows窗体设计器生成的InitializeComponent()方法上的很多(我的意思是400多个)错误。 这些错误大多数只是标签的Text属性的分配。 我想在源代码中禁止使用这些方法,因此我将FxCop生成的禁止代码复制到AssemblyInfo.cs中,但是不起作用。 这是FxCop复制到剪贴板的属性。
有人知道禁止显示此消息的正确属性吗? PS:我正在使用Visual Studio 2005,C#,FxCop 1.36 beta。 您可能已经获得了正确的代码,但是您还需要在项目属性中添加CODE_ANALYSIS作为预编译器定义的符号。我认为那些SuppressMessage属性仅在定义CODE_ANALYSIS的情况下才保留在编译的二进制文件中。 在FxCop 1.36中,"拼写和分析"选项卡上实际上有一个项目选项,它将禁止对任何生成的代码进行分析。 如果不想关闭所有生成代码的分析,则需要确保将CODE_ANALYSIS符号添加到条件编译符号列表(项目属性,"构建"选项卡)中。如果未定义此符号,则SupressMessage属性将从已编译的代码中删除,因此FxCop将看不到它们。 SuppressMessage属性的另一个问题是,您要列出特定方法名称的"目标"(在本例中为WindowsClient.MainForm.InitializeComponent():System.Void),并列出特定的" Scope"。您可能想尝试删除这些;否则,您应该将此SuppressMessage添加到方法的每个实例中。 您还应该升级到FxCop 1.36的RTM版本,该Beta版不会自动检测到较新的版本。 需要在命名空间声明之前或Assemblyinfo.cs中将模块级别抑制消息粘贴到与引发FxCop错误的代码相同的文件中。此外,您将需要将CODE_ANALYSIS定义为条件编译器符号("项目">"属性">"生成")。一旦就位,请完全重建项目,下次运行FxCop时,错误应移至"源中排除"选项卡。 另外,还有一个小技巧,但是如果您要处理许多FxCop排除项,则在它们周围包裹一个区域可能很有用,这样您就可以避免它们。 |