How do I run NuGet exe?

The NuGet Installer build runner performs NuGet Command-line package restore. It can also (optionally) automatically update package dependencies to the most recent ones.

Supported Operating Systems:
NuGet build runners are supported on build agents running Windows OS by default. Linux and macOS are supported when Mono is installed on the agent (only NuGet 3.3+ on Mono 4.4.2+ is supported).

NuGet Installer settings:

Option

Description

NuGet.exe

Select NuGet version to use from the drop-down menu (you need to have NuGet installed) or specify a custom path to NuGet.exe.

Path to solution file

Specify the path to your solution file (.sln) where packages are to be installed.

Restore Mode

Select NuGet.exe restore (requires NuGet 2.7+) to restore all packages for an entire solution. The NuGet.exe install command is used to restore packages for versions prior to NuGet 2.7, but only for a single packages.config file.

Restore Options

If needed, select:

  • Exclude version from package folder names: Equivalent to the -ExcludeVersion option of the NuGet.exe install command. If enabled, the destination folder will contain only the package name, not the version number.

  • Disable looking up packages from local machine cache: Equivalent to the -NoCache option of the NuGet.exe

Packages Sources

Specify the NuGet package sources. If left blank, http://nuget.org is used to search for your packages.

If you are using a TeamCity NuGet feed, select it using the 'magic wand' icon

How do I run NuGet exe?
or manually specify the URL from the NuGet Feed section of Project Settings.

If you use packages from an authenticated feed, configure the NuGet Feed Credentials build feature.

TeamCity allows you to authenticate using private NuGet feeds. Read more in NuGet.

Update Packages

Update packages with help of NuGet update command: Uses the NuGet.exe update command to update all packages under the solution. The package versions and constraints are taken from packages.config files.

Update Mode

Select one of the following:

  • Update via solution file — TeamCity uses Visual Studio solution file (.sln) to create the full list of NuGet packages to install. This option updates packages for the entire solution.

  • Update via packages.config — Select to update packages via calls to NuGet.exe update Packages.Config for each packages.config file under the solution.

Update Options

  • Include pre-release packages: Equivalent to the -Prerelease option of the NuGet.exe update command

  • Perform safe update: Equivalent to the -Safe option of the NuGet.exe update command, that looks for updates with the highest version available within the same major and minor version as the installed package.

See the NuGet documentation for the complete NuGet.exe command line reference.

When you add the NuGet Installer runner to your build configuration, each finished build will have the NuGet Packages tab listing the packages used.

Last modified: 17 November 2022

Make use of nuget within your build scripts

Depending on what exactly you are building, you may require the use of the nuget package manager to create a nuget package which wraps up all the assemblies and source files that make up the package. MyGet Build Services makes calling the nuget executable very simple!

What is nuget?

NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery (nuget.org) is the central package repository used by all package authors and consumers.

For more information be sure to check out the nuget home page.

Use local nuget executable

This is really simple!

The MyGet Build Server already has a maintained version of the nuget executable ready to be called. As a result, you can directly call nuget in your build scripts. This is exposed in the form of an environment variable that you can first check to ensure is set before using. As a result, all you need to do is the following::

set nuget=
if "%nuget%" == "" (
    set nuget=nuget
)

%nuget% pack "projectA.nuspec" -NoPackageAnalysis -OutputDirectory $buildArtifactsDirectory

MyGet Build Services actually provides a number of other environment variables that can be consumed within your build scripts. A complete list of these environment variables can be found on the Build Services Reference page.

For a complete example of how this can be used within a build script, check out the build.bat file for the ReSharper.RazorExtensions nuget package.

Use nuget from within your source code repository

Although you can make use of the local nuget executable that is available on the MyGet Build Server, this may not work for you. For instance, you may need to target a specific version of nuget, which the MyGet Build Servers may not have installed. In this case, one option that you would have would be to include the necessary files within your Source Control Repository, and call the nuget executable directly from there. This is possible due to the fact that the MyGet Build Server downloads all the source code from your repository before executing the build.

This is typically done by creating a lib or a sharedbinaries folder in your Source Control Repository, and include the nuget executable file there, for example:

How do I run NuGet exe?

Once in place, you can then call the nuget executable directly by first locating it in your source tree, and then running it, for example (using a PowerShell script):

$nugetExe = "./../lib/NuGet.exe";

exec { 
    .$nugetExe pack "projectA.nuspec" -NoPackageAnalysis -OutputDirectory $buildArtifactsDirectory 
}

Alternative ways to include a specific version of nuget.exe into your source code repository are:

  • use the .nuget\nuget.exe version you use for package restore
  • install a specific version of the NuGet.CommandLine package on the solution level and use the nuget.exe from the Packages\NuGet.CommandLine.{version} folder

Where is NuGet exe run?

The latest recommended NuGet CLI is always available at https://dist.nuget.org/win-x86-commandline/latest/nuget.exe .

What is NuGet exe?

The NuGet Command Line Interface (CLI), nuget.exe , provides the full extent of NuGet functionality to install, create, publish, and manage packages without making any changes to project files.