比较两个 fxcop 结果
Posted
技术标签:
【中文标题】比较两个 fxcop 结果【英文标题】:Compare two fxcop results 【发布时间】:2010-04-14 07:40:43 【问题描述】:我将使用 fxcop 分析同一个 dll 的两个不同版本。 我只想显示这两个报告之间的差异。 有谁知道这是否可能?
感谢您的宝贵时间。
【问题讨论】:
你能完成这个吗? 【参考方案1】:是的,这是可能的,但没有可用的内置工具。一种相当简单的方法是使用差异工具来比较两个报告。如果结果对您来说过于嘈杂,另一种方法是使用您自己的工具来比较两个报告的 XML。
【讨论】:
【参考方案2】:您使用的是 UI 还是命令行?
使用命令行工具,您有多种选择。其中之一是导入旧报告以用作基线。然后设置 fxcop 项目只报告新的错误:Report Status="Active, Absent" NewOnly="True"
命令行将是这样的:fxcopcmd.exe /i:OldVersionReport.xml /out:NewVersionReport.xml /p:FXCopProject.fxcop /f:mydll.dll
新报告将仅包含新的活动错误以及缺失的列表,即旧版本中已修复的错误。
虽然这在大多数情况下都有效,但您需要了解差异不会 100% 准确。 FXCop 尽最大努力将旧报告与新版本的 DLL 相匹配,但有时会失败。例如,如果您在代码中的某处修复了特定违规行为,但在另一个地方添加了相同类型的违规行为,则 FXCop 很可能会错过这一点并且不会显示任何差异。
【讨论】:
【参考方案3】:对于 FxCop VS 2010,您只需要指定 /saveMessagesToReport:Absent
以及较早生成的 FxCop 文件 /import:"OldFile.xml"
。
只是一个例子。
fxcopcmd.exe /import:"c:\Old.xml" /summary "/file:c:\*.dll"
/saveMessagesToReport:Absent /out:"c:\Output.xml"
【讨论】:
以上是关于比较两个 fxcop 结果的主要内容,如果未能解决你的问题,请参考以下文章
FxCop(/VS2010 代码分析),可以将方法结果标记为 IDisposable 的“现在调用者责任”吗?
FxCop 间接引用 System.Core 版本 2.0.5.0
FxCop 自定义规则在 VS2012 中没有名称(但“官方”规则有名称)