- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 TeamCity 8.0.6(内部版本 27767)中添加了一个构建步骤,以针对特定的 c# 项目程序集执行 FxCop。
当从 VS 2013 中运行 FxCop 并设置 MinimumRecommendedRules 时,我没有收到任何错误或警告(我已将它们全部修复)。
现在我想将其连接到 TeamCity 中。为了限制规则,我指定了一个命令行属性,如下所示:
/ruleSet:=MinimumRecommendedRules.ruleset /rulesetdirectory:'FxCop\Rule Sets'
(rulesetdirectory 参数指向我的源代码树中的一个位置,其中包含标准规则集文件夹的完整内容)
但是这没有达到预期的行为,完整的规则集运行后出现如下错误:
FxCop warning: Keyword=CA0063 Kind=Engine Type=Microsoft.FxCop.Sdk.FxCopException * Failed to load rule set file 'MinimumRecommendedRules.ruleset' or one of its dependent rule set files.
这是 TeamCity 生成的命令行:
[17:32:29]Starting: "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe" /forceoutput /ignoregeneratedcode /ruleSet:=MinimumRecommendedRules.ruleset "/rulesetdirectory:'FxCop\Rule Sets'" /f:dal\bin\release\MyDAL.dll /out:C:\TeamCity\buildAgent\temp\buildTmp\fxcop-output-1891867450083417003\fxcop-result.xml
谁能发现问题所在吗?
最佳答案
我想通了,希望这对其他人有帮助。
/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,我还将“Specifiy 安装根目录”设置为“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)
关于fxcop - TeamCity FxCop 选择MinimumRecommendedRules.ruleset 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24786283/
我是一名优秀的程序员,十分优秀!