批处理脚本的生成后参数无法转换生成参数

时间:2014-11-13 23:54:40

标签: batch-file azure tfs build tfs2013

我正在使用TFS 2013并正在构建一个我想要与Nuget打包的Azure Cloud Service项目,以便我可以发布到Octopus Deploy。我不能使用octopack,因为此刻不支持。我试图将TFS参数传递到构建后的批处理脚本中,以便我可以使用-version参数运行nuget(这应该随每个构建而变化)。

我遇到的问题是批处理脚本无法识别TFS构建参数。例如,在脚本中我想传递参数 version $(TeamProject)-1.0.0 $(Rev:.r),这将为脚本提供在包名中设置的版本。

脚本中的完整nuget包调用是:

%nugetPath%push%packagePath%\ Veedyo。%version%.nupkg

将其传递到构建后的脚本路径中:

$ /应用1 / MAIN /源/ .NET / Application1.Package / package.cmd

这是因为源控制路径在构建完成后被转换为实际路径(我可以在日志中看到真实路径)。

但是,构建中的构建后脚本参数属性不会转换为" $(TeamProject)" -1.0.0" $ (启:.R)"达到预期的价值。这导致执行批处理脚本时出错:

异常消息:TF270015:' package.cmd'返回了意外的退出代码。预期' 0&#39 ;;实际' 1'。有关详细信息,请参阅构建日志

那么,有没有人知道如何将add build参数转换为post-build脚本参数属性?

1 个答案:

答案 0 :(得分:1)

运行脚本时,这些宏不可用。您可以使用列出here列出的TF_BUILD环境变量之一。

可能您正在寻找TF_BUILD_BUILDNUMBER,或者您可能需要提取您正在寻找的数据;在后一种情况下,Powershell比cmd.exe解释器更易于使用。