我刚刚就Service References
和Xml summary errors
询问了有关自动生成代码的类似question。答案已发布,表明我可以将Service Reference
添加到自己的项目中,然后完全避免Xml
汇总警告和Stylecop
错误。Stylecop为Reference.cs文件抑制错误
但我意识到,我能够通过设置来Service Reference
到Internal
绕过Xml
问题,我现在贴在StyleCop
错误。
我正在使用FxCop
版本10.0。
在我的项目的属性,在代码分析选项卡上,我已检查了选项
从生成的代码 (只有管理)
此外,从看
禁止结果生成的代码在Reference.cs文件中,我看到该代码装饰有以下属性:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
..whi ch Stylecop
应该跳过,对吗?虽然这不起作用,但我仍然在为生成的代码获取StyleCop
错误。
编辑:下面的头还可以在生成的代码中发现:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18033
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
那么,为什么是不是被忽略了?
我也发现了这个question并用我的StyleCop
setings以下尝试:
<CollectionProperty Name="GeneratedFileFilters">
<Value>Reference\.cs$</Value>
</CollectionProperty>
但这也不管用,我一直在努力与正则表达式,但尝试下面的值添加到上面的例子让Stylecop忽略我生成的代码。
Reference.cs
\Reference\.cs
\Reference\.cs$
Reference\.cs$
有谁知道如何抑制所有Stylecop
错误的Reference.cs
文件?
EDIT2:显示为Reference.cs文件中的错误:
错误1个CA1812:Microsoft.Performance:...是一个内部类, 显然从来没有实例化。如果是这样,请从 组件中删除代码。如果此类只包含静态方法,则 考虑添加一个私有构造函数以防止编译器从 生成默认构造函数。
错误2 CA2239:Microsoft.Usage:添加 'OnDeserialized私人无效 (的StreamingContext)' 方法键入...并与System.Runtime.Serialization.OnDeserializedAttribute属性它 。
错误4 CA1811:Microsoft.Performance:...似乎没有 上游公共或受保护的呼叫者。
我有这3种类型的错误中的27个。
编辑3:我有Style/Fx警察设置运行构建。我在Build Events
选项卡中添加在构建选项卡中的条件编译符号CODE_ANALYSIS
和
"$(ProgramFiles)\Microsoft FxCop 10.0\FxCopCmd.exe" /file:"$(TargetPath)" /ruleid:-"Microsoft.Design#CA1006" /ruleid:-"Microsoft.Design#CA1020" /console /cul:en-GB /q /assemblyCompareMode:StrongNameIgnoringVersion
...在Post-build event command line
。
你能否详细说明你所看到的错误? – Mightymuke 2013-02-14 20:57:58
@Mightmuke,请参阅编辑2 – DevDave 2013-02-15 11:08:19
当我选择“从生成的代码中取消结果”选项时,它似乎可以正常工作(尽管我没有括号中的文字,我在想如何以及为什么会出现这种情况) 。你是从IDE(又名代码分析)还是从FxCop跑步者运行?如果来自IDE,你有几个项目?从IDE运行时出现问题,因为第一个项目的代码分析设置会覆盖“子”项目的设置(至少在VS2010中)。如果你只有一个项目,这当然不会成为问题。 – Mightymuke 2013-02-15 18:03:30