An experimental eDSL for NuGet packaging, written in F# and using custom operations inside computation expressions
F#
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.nuget
NuGetDsl.Consumer
NuGetDsl.Tests
NuGetDsl
.gitignore
LICENSE
NuGetDsl.sln
README.md

README.md

NugetDsl

An experimental eDSL for NuGet packaging, written in F# and using custom operations inside computation expressions.

Allows for NuGet packages to be defined like this:

See the blog post for more information: http://www.readcopyupdate.com/blog/2014/10/10/edsls-using-custom-operations.html

let def = nuget {            
    rootDirectory "c:\\dev"
    toolsDirectory "c:\\dev\\tools"
    outputDirectory "c:\\dev\\output"
    packageProject (package {
        projectName "package.test1"
        includeReferencedProjects
        id "package.test"
        version (v"1.2.3")
        authors ["me"; "you"]
        description "package description"
        summary "package summary"
        copyright "package copyright"
        includeFiles !> "bin\**\*.config"
        includeFiles !> ("tool\**\*.exe", "tools", "tool\**\*.pdb")
        includeDependency !> ("xunit", v"1.9.1")
        includeDependency !> ("fsunit.xunit", v"1.3.0.1")
        includeDependency !> ("Autofac", v"1.0.0.0", Net40)
        prerelease
        requireLicenceAccept
    })
    packageProject (package { id "package.test2" })
}