Add path to assemblies to FAKE script

231 views Asked by At

Here is my FAKE build script:

#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"

My program use FSharp.Data which I have installed in packages/FSharp.Data/lib/net40/FSharp.Data.dll using Paket.

I can pass this path to compiler when I was building it from command line:

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

How can I do it in the FAKE script?

1

There are 1 answers

0
Tomas Petricek On BEST ANSWER

You can specify references using the References property of the record that the Fsc task uses:

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" })
)