2010-04-14 130 views
5

我打算用fxcop分析两个不同版本的同一个dll。 我想只显示这两个报告之间的差异。 有谁知道这是可能的吗?比较两个fxcop结果

谢谢你的时间。

+0

您能完成此任务吗? – 2013-11-11 13:03:42

回答

2

是的,这是可能的,但没有内置的工具可用于此。一个相当简单的方法是使用diff工具来比较两个报告。如果结果对您来说过于嘈杂,另一种方法是推出自己的工具来比较两个报告的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很可能会错过这一行为并显示没有任何区别。

0

对于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"