如何通过命令行获取新(增加)FxCop 警告?

Posted

技术标签:

【中文标题】如何通过命令行获取新(增加)FxCop 警告?【英文标题】:How to get the New(increase) FxCop warnings through command line? 【发布时间】:2013-11-13 16:26:33 【问题描述】:

有没有人知道,我将如何在 FxCop 数量增加的情况下获得 xml 或 html。 目前这是我的 fxcop cmd ,我在其中替换 0 和 1 并动态创建批处理文件并运行。 我得到了完整的 fxcop 警告,尽管在 cmd 提示符中我可以看到它显示了 fxcop 警告的增加数量。

     fxcopcmd.exe /import:"c:\Standard.xml" /summary "/file:0" /searchgac /ignoreinvalidtargets /forceoutput /successfile /ignoregeneratedcode /saveMessagesToReport:Active 
    /r:-"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\NamingRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\DesignRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\GlobalizationRules.dll"
 /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\InteroperabilityRules.dll"
 /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\MobilityRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\PerformanceRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\PortabilityRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\SecurityRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\UsageRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\DataflowRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\MaintainabilityRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\ReliabilityRules.dll"
     /r:+"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\SecurityTransparencyRules.dll"
     /ruleid:-Microsoft.Design#CA1024 /ruleid:-Microsoft.Performance#CA1822
     /ruleid:-Microsoft.Usage#CA2227 
    /out:"1"

我打算手动/XmlDiff 将 Xml 与标准 xml 进行比较并找出差异。 如果 FxCop 工具可靠地完成了同样的工作,那么我可以使用它。

【问题讨论】:

【参考方案1】:

为了让 FxCop 计算增量,它需要访问一个报告或项目文件,其中存储了上次报告的违规行为。除非 1c:\Standard.xml(或在下次运行之前复制到它),否则您当前的命令行似乎不会允许这种情况正确发生。

【讨论】:

Standard.xml 之前由 FxCop 生成。 如果您在每次运行时更新它和/或导入上次运行的报告,您的增量计数应该会变得准确。【参考方案2】:

我得到了解决方案,/saveMessagesToReport:Active 必须更改为 /saveMessagesToReport:Absent,这只会增加。必须尝试更多场景(计数相同但结果不同)并将在此处更新。

【讨论】:

以上是关于如何通过命令行获取新(增加)FxCop 警告?的主要内容,如果未能解决你的问题,请参考以下文章

查询 FxCop 以获取支持的规则(使用命令行)

通过命令行从 FXCop 中排除规则

如何使用命令行运行选择 FxCop 规则?

使用 FxCop 命令行参数使用多个自定义字典

如何通过命令行在 MSBuild 中指定 CodeAnalysisRuleset

将字典传递给 FxCop GUI