使用fsi --exec运行FAKE时无法指定Target

时间:2015-04-11 06:01:54

标签: build f#-fake fsi

我想用fsi --exec执行FAKE脚本,因为它比使用FAKE.exe快得多。但是,我无法理解如何指定目标。

我可以这样做:

FAKE.exe build.fsx Clean

我想做(但不起作用,它将使用默认目标):

fsi --exec build.fsx Clean 

任何提示?

由于

拉​​斯穆斯

1 个答案:

答案 0 :(得分:1)

你必须做一些额外的工作,

在脚本设置开始时或默认构建参数,在脚本结束时使用默认目标构造,如:

#I "pathToYourFale\\FAKE\\tools"
#r @"FakeLib.dll"


open Fake
open Fake.EnvironmentHelper

// Process command args as Fake utilities don't work from fsi invoke
for arg in fsi.CommandLineArgs do
     tracefn "arg: %s" arg
     if arg.StartsWith("target=") then target <- arg.Split('=').GetValue(1) :?> string
     else if arg.StartsWith("Target=") then target <- arg.Split('=').GetValue(1) :?> string

...
Your script here
...
...

AdditionalSyntax.RunParameterTargetOrDefault "target" "target"

这应该适用于Fake调用和Fsi调用,例如

fsi yourScript.fsx target="Yourtarget"

命令arg处理有点笨拙,有没有人对如何处理有更好的建议?