Skip to content
A Cake ( add-in that supports Inedo ProGet (
Branch: master
Clone or download
Pull request Compare This branch is 34 commits ahead of apprenda:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Cake.ProGet is a Cake add-in that exposes Inedo ProGet functionality to your build scripts.

Build status

Table of Contents

  1. Building
  2. Pre-Requisites
  3. Examples
  4. Contributing
  5. License


This package is built using Cake.Recipe

> .\build.ps1


The Cake.ProGet add-in is intended to be used in conjunction with your organization's ProGet asset repository. The alias methods for the Universal Package functionality will require your build environment to have upack.exe available to it.

There are several ways you can configure your build environment for the upack.exe:

  • Add the installation path to your %PATH% variable.
  • Create environment variable(s) %UPackInstall% with the correct installation path set.
  • Host a local (to your organization) nuget package with the UPack executable and resolve the tool using a #tool directive. i.e., #tool "nuget:?package=YourPackage"

The order of resolution will be (first to last): local tool resolution via #tool, then the %UPackInstall% variable, and finally %PATH% variable. This gives you flexibility in resolving a more specific version in a given build or allowing a system-wide default.


Universal Package

A full example can be found here

#addin "nuget:?package=Cake.ProGet"

    .Description("Creates a universal package")
    .Does(() => {
        UPackPack(new UniversalPackagePackSettings(

    .Description("Publishes a universal package")
    .Does(() => {                
        foreach(var item in GetFiles("./*.upack"))
            UPackPush(new UniversalPackagePushSettings(item.FullPath, "http://your-proget-server/upack/packages/"));

ProGet Assets

A full example can be found here

#addin "nuget:?package=Cake.ProGet"

var Version = "0.1.0";

    .Description("Creates a package as a build artifact")
    .Does(() => {
        Zip("./content", "");

    .Description("Publishes a ProGet asset")
    .Does(() => {
        // TODO: this endpoint would be formatted based on your specific hosting environment/naming scheme.
        var assetUri = string.Format("http://your-proget-server/endpoints/asset-dir/content/test-artifact-{0}.zip", Version);
        PushAsset("./", assetUri, new ProGetConfiguration());


If you're thinking about contributing to Cake.ProGet, please make sure you've read the contribution guidelines before creating your first pull request.

  • Fork the repository.
  • Create a branch to work in.
  • Make your feature addition or bug fix.
  • Don't forget the unit tests.
  • Send a pull request.


Copyright © Apprenda Inc., and contributors.

Cake.ProGet is provided as-is under the MIT license. For more information see LICENSE.

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.

You can’t perform that action at this time.