我刚刚开始使用FAKE。我真的很喜欢这个主意。在教程中,设置构建和部署目录。
// Directories
let buildDir = "./build/"
let testDir = "./test/"
let deployDir = "./deploy/"
然后引用那些很好的,但是可以将其作为参数传递吗?也许作为我可以在以后使用它的任务?
答案 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