我可以将参数传递给F#FAKE构建脚本吗?

时间:2014-10-08 22:42:19

标签: f# f#-fake

我刚刚开始使用FAKE。我真的很喜欢这个主意。在教程中,设置构建和部署目录。

// Directories
let buildDir  = "./build/"
let testDir   = "./test/"
let deployDir = "./deploy/"

然后引用那些很好的,但是可以将其作为参数传递吗?也许作为我可以在以后使用它的任务?

3 个答案:

答案 0 :(得分:40)

这样的事情应该有效。

从命令行:

"..\packages\Fake.3.7.5\tools\Fake.exe" "build.fsx" dir=my/custom/dir/

在build.fsx脚本中:

let buildDir = getBuildParamOrDefault "dir" "./build/"

这将查找传入的dir参数,如果已分配则使用它,否则默认为./build /

答案 1 :(得分:1)

以上都不对我完全有效。低于调整后的解决方案。
需要使用-e标志运行console命令:

"..\fake.exe" "build.fsx" -e dir=sample/directory

构建脚本正在使用Environment.environVarOrDefault "dir" "default\directory"

let buildDir = Environment.environVarOrDefault "dir" "default\directory"
如果没有其他选择,也可以使用

Environment.environVar

最后,构建脚本必须与Target.runOrDefaultWithArguments一起运行。如果使用Target.runOrDefault执行,它将失败:

// start build
Target.runOrDefaultWithArguments "DefaultBuildTarget"

答案 2 :(得分:0)

接受的答案似乎不适用于FAKE 5。

您将需要在运行脚本之前设置环境变量。

dir=my/custom/dir/ ./fake.sh run build.fsx

如上面评论中的链接。

http://www.github.com/fsharp/FAKE/issues/2125#issuecomment-427684505