如何将 Teamcity 构建参数传递到由 Fake 脚本启动的 Ant 脚本中?

How to pass Teamcity build parameters into an Ant script that is launched by Fake script?

我有一个 Ant build.xml,其中包含以下代码:

<mkdir dir="c:/MyDir/${build.number}/html"/>

当我 运行 此任务作为单独的 TeamCity 构建步骤(作为 Ant 任务)时,这工作正常。

我已将此脚本的执行移至伪 F# 脚本中。现在,当我从 Teamcity 执行 Fake 脚本时,未设置参数值(它确实创建了一个名为“${build.number}”的文件夹)。

我像这样在 Fake 中启动我的 ant 脚本:

let cmd = sprintf @"%s\plugins\ant\bin\ant.bat" (Configuration.agentHomeDir.ToString())
let args = ""
let dir = ""

Shell.Exec(cmd, args, dir)

如何从我的 ant 脚本中正确引用 Teamcity 的内部版本号?

好吧,我最终通过命令行参数传递了内部版本号。

在假脚本中:

let buildNumber = environVar "BUILD_NUMBER"
let cmd = sprintf @"%s\plugins\ant\bin\ant.bat" (Configuration.agentHomeDir.ToString())
let args = sprintf "-DbuildNumber=%s" buildNumber.ToString()
let dir = ""
Shell.Exec(cmd, args, dir)

在蚂蚁的build.xml中:

<property name="buildNumber" value="buildNumber" />

...

<mkdir dir="c:\mydir${buildNumber}" />

欢迎更优雅的解决方案。