TeamCity FxCop 选择 MinimumRecommendedRules.ruleset 无效

Posted

技术标签:

【中文标题】TeamCity FxCop 选择 MinimumRecommendedRules.ruleset 无效【英文标题】:TeamCity FxCop Selecting MinimumRecommendedRules.ruleset has no effect 【发布时间】:2014-07-16 16:44:17 【问题描述】:

我在 TeamCity 8.0.6(内部版本 27767)中添加了一个构建步骤,以针对特定的 c# 项目程序集执行 FxCop。

在 VS 2013 中使用 MinimumRecommendedRules 集运行 FxCop 时,我没有收到任何错误或警告(我已全部修复)。

现在我想在 TeamCity 中进行连接。为了限制规则,我指定了一个命令行属性,如下所示:

/ruleSet:=MinimumRecommendedRules.ruleset  /rulesetdirectory:'FxCop\Rule Sets'

(rulesetdirectory 参数指向我的源代码树中的一个位置,该位置包含标准规则集文件夹的全部内容)

但是,这没有所需的行为,运行完整的规则集,我收到如下错误:

FxCop 警告:Keyword=CA0063 Kind=Engine Type=Microsoft.FxCop.Sdk.FxCopException * 无法加载规则集文件“MinimumRecommendedRules.ruleset”或其相关规则集文件之一。

这是 TeamCity 生成的命令行:

[17:32:29]开始:“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe”/forceoutput /ignoregeneratedcode /ruleSet:=MinimumRecommendedRules。规则集 "/rulesetdirectory:'FxCop\Rule Sets'" /f:dal\bin\release\MyDAL.dll /out:C:\TeamCity\buildAgent\temp\buildTmp\fxcop-output-1891867450083417003\fxcop-result.xml

谁能发现问题所在?

【问题讨论】:

【参考方案1】:

我想通了,希望这对其他人有帮助。

/ruleSet: 参数需要具有规则集文件的完整(相对或绝对)路径,如下所示:

/ruleSet:"=%teamcity.build.workingDir%\FxCop\RuleSets\MinimumRecommendedRules.ruleset"

(注意:双引号是为了处理 teamcity.build.workingDir 可能包含空格的可能性)

其次,第二个命令行参数/rulesetdirectory: 不再需要。我怀疑第二个参数实际上不起作用。

还请注意,我的工作命令行参数在我的源代码中指向我的 MinimumRecommendedRules.ruleset 文件。它可以很容易地复制到“c:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\Rule Sets”下的标准规则集文件夹中。

最后,由于我的项目都是 VS 2013 并且 TeamCity 只能识别到 v10,我还将“指定安装根目录”设置为“c:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop”,以确保正在使用最新版本的 FxCop 并且不会阻塞 .Net 4.5 代码。 (注意:由于 C++ 项目构建要求,我在构建服务器上安装了 VS 2013,我对此并不满意,但事实证明它对我处理 FxCop 设置很方便。还有其他方法可以将构建服务器上的 FxCop 内容,无需安装 VS 2013)

【讨论】:

以上是关于TeamCity FxCop 选择 MinimumRecommendedRules.ruleset 无效的主要内容,如果未能解决你的问题,请参考以下文章

TeamCity 中图表格式的 FxCop 报告

在 TeamCity 中全局禁用 FxCop 错误

TeamCity 发送电子邮件 FxCop 通知

如何在 TeamCity 中导入/解析 fxcop/stylecop 生成的 xml 报告

使用 TeamCity 对我的旧且粗糙的解决方案运行 Fxcop 会产生太多错误

无法让 TeamCity FxCop Build Runner 工作