将程序集的路径添加到 FAKE 脚本

Add path to assemblies to FAKE script

这是我的 FAKE 构建脚本:

#r @"packages/FAKE/tools/FakeLib.dll"
open Fake
open Fake.FscHelper

// Properties
let buildDir = "./build/"

// Targets 
Target "Clean" (fun _ ->
    CleanDir buildDir
)

Target "BuildApp" (fun _ ->
    ["src/app/Main.fs"]
    |> Fsc (fun p ->
              { p with Output = "build/Main.exe" })
)

Target "Default" (fun _ ->
    trace "Hello World from FAKE"
)

// Dependencies
"Clean"
  ==> "BuildApp"
  ==> "Default"

// start build
RunTargetOrDefault "Default"

我的程序使用 FSharp.Data,我使用 Paket.

安装在 packages/FSharp.Data/lib/net40/FSharp.Data.dll

当我从命令行构建它时,我可以将此路径传递给编译器:

$ fsharpc src/app/Main.fs -r packages/FSharp.Data/lib/net40/FSharp.Data.dll 

如何在 FAKE 脚本中做到这一点?

您可以使用 Fsc 任务使用的记录的 References 属性 指定引用:

Target "BuildApp" (fun _ ->
    ["src/app/Main.fs"]
    |> Fsc (fun p ->
              { p with 
                    References = [ "packages/FSharp.Data/lib/net40/FSharp.Data.dll" ]
                    Output = "build/Main.exe" })
)