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

时间:2014-09-09 21:53:07

标签: c# .net teamcity fxcop fxcopcmd

我知道您可以创建项目并使用相对路径,但我不想将项目文件保留在版本控制中。我们为了简洁起见,我只想从Microsoft.Design运行一条规则CA1001。如何使用命令行参数指定它并使其在TeamCity FxCop构建运行器中工作?

2 个答案:

答案 0 :(得分:1)

可以使用/ruleid命令行选项。它没有显示在fxcopcmd.exe命令行选项的MSDN帮助主题中,但您可以通过运行fxcopcmd.exe /?来查看说明。

答案 1 :(得分:0)

该工具位于\ FxCopCmd.exe中。 可以在此处找到选项列表。 所有选项都必须附加一个冒号和参数(如果有),但没有空格。基本命令如下所示。

FxCopCmd.exe /file:E:\My\Project\Precompiled\bin 

/rule:"C:\Program Files (x86)\Microsoft FxCop 1.35\Rules" /out:fxcopreport.xml

您还可以应用多种规则,例如:

"C:\Program Files\Microsoft FxCop 1.35\FxCopCmd.exe"
/rule:"C:\Program Files\Microsoft FxCop 1.35\Rules\DesignRules.dll"

/rule:"C:\Program Files\Microsoft FxCop 1.35\Rules\GlobalizationRules.dll"

/rule:"C:\Program Files\Microsoft FxCop 1.35\Rules\InteroperabilityRules.dll"

/rule:"C:\Program Files\Microsoft FxCop 1.35\Rules\MobilityRules.dll"

/rule:"C:\Program Files\Microsoft FxCop 1.35\Rules\NamingRules.dll"

/rule:"C:\Program Files\Microsoft FxCop 1.35\Rules\PerformanceRules.dll"

/rule:"C:\Program Files\Microsoft FxCop 1.35\Rules\PortabilityRules.dll"

/rule:"C:\Program Files\Microsoft FxCop 1.35\Rules\SecurityRules.dll"

/rule:"C:\Program Files\Microsoft FxCop 1.35\Rules\UsageRules.dll"

/out:fxcopreport.xml

/summary

/file:"E:\MyProject\Model\bin\Debug\MyProject.dll"

/directory:"C:\Program Files\Reference Assemblies\Microsoft\Framework
\v3.5\System.Core.dll"

在上面的命令中,标志是:

/ rule您希望包含的规则DLL的路径。

/ out应该保存分析的文件。

/ summary使FxCop在报告中包含摘要。

/ file您要分析的文件。

/目录由于某种原因,项目文件无法记住在哪里 System.Core.dll位于。为避免错误,您可以像这样指定dll。