我将用fxcop分析同一个dll的两个不同版本。 我想只显示这两个报告之间的差异。 有谁知道这是否可行?
感谢您的时间。
答案 0 :(得分:2)
是的,这是可能的,但没有可用的内置工具。一种相当简单的方法是使用diff工具来比较两个报告。如果结果太吵了,另一种方法是使用自己的工具来比较两个报告的XML。
答案 1 :(得分: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很可能会错过这一点并且没有任何区别。
答案 2 :(得分: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"