FAKE and Paket

FAKE + Paket Talk


  • build tool for .NET and mono
  • DSL in F#

tutorial available

dotnet new tool-manifest
dotnet tool install fake-cli -g

Running FAKE

@echo off
.paket/paket.exe restore
packages/FAKE/tool/Fake.exe build.fsx

Hello World

  • Target "Default" which prints Hello World from FAKE

Cleaning Up

  • Runs CleanDir on the buildDir

Compiling the Application

  • Build - find files ending with .csproj which MSBuildRelease can use
  • "Clean" has the dependencies

Compiling Test Projects

  • If your project has tests

Running Tests

  • After building the tests, run the tests!

  • Run the tests in parallel with NUnitParallel

Other Functions

  • Creating Nuget Packages
  • (what is a solution file?)

Live Release

  • Example of Paket's Target "Clean"

  • The build and release succeeded!!! Live!


  • Another packet manager like Nuget.
  • Nuget has not global info :/

  • What version did I install?!?!?

  • Only a couple of files

  • paket.dependencies - what dependencies does your project have?

  • paket.lock - the lock file computes a resolution for all your dependencies

  • paket.references

Paket commands

paket install # install everything
paket outdated # is anything outdated
paket why nuget [packagename] # where is this dependency required
paket update # updates `paket.lock`
paket restore # restores dependencies (important, don't know how lol?)
paket simplify # tries to simplify - it might be wrong

  • Can have groups, packages for building, packages for testing

  • In line 16, I think

  • The paket references!