是否可以从所有FxCop分析中排除完整的命名空间,同时仍然使用SuppressMessageAttribute
分析程序集的其余部分?
在我目前的情况下,我有一堆由LINQ to SQL生成的类导致了很多FxCop问题,显然,我不会修改所有这些以匹配FxCop标准,因为很多这些修改都会如果我重新生成课程就会消失。
我知道FxCop有一个项目选项来禁止对生成的代码进行分析,但它似乎没有将LINQ 2 SQL创建的实体和上下文类识别为生成的代码。
答案 0 :(得分:18)
如果使用[GeneratedCode]
属性标记类,则可以使用/ ignoregeneratedcode标记和FxCop,如本MSDN帖子中所述:
FAQ: How do I prevent FxCop from firing warnings against generated code
您可能需要添加新的代码文件并在那里实现新的部分类以将属性添加到类中:
[GeneratedCode]
public partial class MainDataContext { }
确保在创建新文件时将所有内容添加到正确的命名空间。
答案 1 :(得分:5)
在课程中添加[GeneratedCode] attribute
编辑:我的意思是使用相同名称的部分类,正如另一个答案所解释的那样。
答案 2 :(得分:1)
使用生成的代码属性,来自代码分析团队中关于该主题的blog post。
这位于命名空间的顶部应该可以解决问题:
[GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
答案 3 :(得分:1)
<Assembly: SuppressMessage("Microsoft.Design", _
"CA1020:AvoidNamespacesWithFewTypes", _
Scope:="namespace", _
Target:="Missico.IO")>
将GlobalSuppressions.vb
中的语句放在项目的根目录。
我所拥有的只是VB的例子。