我正在使用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脚本参数属性?
答案 0 :(得分:1)
运行脚本时,这些宏不可用。您可以使用列出here列出的TF_BUILD环境变量之一。
可能您正在寻找TF_BUILD_BUILDNUMBER
,或者您可能需要提取您正在寻找的数据;在后一种情况下,Powershell比cmd.exe解释器更易于使用。