我刚刚问了一个类似的问题Service References
,关于从和自动生成的代码Xml summary errors
。发布了一个答案,建议我可以将其添加Service Reference
到自己的项目中,然后它可以完全避免Xml
摘要警告和Stylecop
错误。
但我意识到我可以Xml
通过设置 to 来解决这个问题,Service Reference
现在Internal
我陷入了StyleCop
错误。
我使用的是FxCop
10.0 版。
在我项目的属性中,在代码分析选项卡中,我检查了选项
抑制生成代码的结果(仅限托管)
此外,通过查看 Reference.cs 文件中生成的代码,我看到代码装饰有以下属性:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
..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>
//------------------------------------------------------------------------------
那么为什么不被忽略呢?
我也发现了这个问题,并尝试在我的设置中使用以下StyleCop
内容:
<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:添加“private void OnDeserialized(StreamingContext)”方法来键入...并使用 System.Runtime.Serialization.OnDeserializedAttribute 对其进行属性。
错误 4 CA1811 : Microsoft.Performance : ... 似乎没有上游公共或受保护的调用者。
我有这 3 种错误中的 27 种。
编辑 3:我有 Style/Fx 警察设置可以在构建时运行。我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
选项Build Events
卡中。