【发布时间】:2010-04-14 07:40:43
【问题描述】:
我将使用 fxcop 分析同一个 dll 的两个不同版本。 我只想显示这两个报告之间的差异。 有谁知道这是否可能?
感谢您的宝贵时间。
【问题讨论】:
-
你能完成这个吗?
标签: fxcop
我将使用 fxcop 分析同一个 dll 的两个不同版本。 我只想显示这两个报告之间的差异。 有谁知道这是否可能?
感谢您的宝贵时间。
【问题讨论】:
标签: fxcop
是的,这是可能的,但没有可用的内置工具。一种相当简单的方法是使用差异工具来比较两个报告。如果结果对您来说过于嘈杂,另一种方法是使用您自己的工具来比较两个报告的 XML。
【讨论】:
您使用的是 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 很可能会错过这一点并且不会显示任何差异。
【讨论】:
对于 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"
【讨论】: