Edit

Share via


NuGet CLI reference

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.

To use any command, open a command window or bash shell, then run nuget followed by the command and appropriate options, such as nuget help pack (to view help on the pack command).

This documentation reflects the latest version of the NuGet CLI. For exact details for any given version that you're using, run nuget help for the desired command.

To learn how to use basic commands with the nuget.exe CLI, see Install and use packages using the nuget.exe CLI.

Installing nuget.exe

Always install the latest version of the tool that supports your configuration.

If the nuget.exe CLI tool is already installed, you can update the tool to the latest version by using the command nuget update -self.

  1. Download nuget.exe:

  2. When prompted, save the file to a folder of your choice. The nuget.exe file is downloaded directly. The downloaded file isn't an installer, so there's no need to run the file directly from the browser.

  3. To use the CLI tool from any folder, add the folder that contains the nuget.exe file to your PATH environment variable.

Tip

To make the NuGet CLI available within the Package Manager Console in Visual Studio, see Using the nuget.exe CLI in the console.

Availability

See feature availability for exact details.

  • All commands are available on Windows.
  • All commands work with nuget.exe running on Mono except where indicated for pack, restore, and update.
  • The pack, restore, delete, locals, and push commands are also available on Mac and Linux through the dotnet CLI.

Commands and applicability

Available commands and applicability to package creation, package consumption, and/or publishing a package to a host:

Common Commands Applicable Roles NuGet Version Description
pack Creation 2.7+ Creates a NuGet package from a .nuspec or project file. When running on Mono, creating a package from a project file is not supported.
push Publishing All Publishes a package to a package source.
config All All Gets or sets NuGet configuration values.
help or ? All All Displays help information or help for a command.
locals Consumption 3.3+ Lists locations of the global-packages, http-cache, and temp folders and clears the contents of those folders.
restore Consumption 2.7+ Restores all packages referenced by the package management format in use. When running on Mono, restoring packages using the PackageReference format is not supported.
setapikey Publishing, Consumption All Saves an API key for a given package source when that package source requires a key for access.
spec Creation All Generates a .nuspec file, using tokens if generating the file from a Visual Studio project.
Secondary Commands Applicable Roles NuGet Version Description
add Publishing 3.3+ Adds a package to a non-HTTP package source using hierarchical layout. For HTTP sources, use push.
delete Publishing All Removes or unlists a package from a package source.
init Creation 3.3+ Adds packages from a folder to a package source using hierarchical layout.
install Consumption All Installs a package into the current project but does not modify projects or reference files.
list Consumption, perhaps Publishing All Displays packages from a given source.
mirror Publishing Deprecated in 3.2+ Mirrors a package and its dependencies from a source to a target repository.
search Consumption 5.8+ Searches a given source using the query string provided.
sources Consumption, Publishing All Manages package sources in configuration files.
update Consumption All Updates a project's packages to the latest available versions. Not supported when running on Mono.

Different commands make use of various Environment variables.

NuGet CLI commands by applicable roles:

Role Commands
Consumption config, help, install, list, locals, restore, search, setapikey, sources, update
Creation config, help, init, pack, spec
Publishing add, config, delete, help, list, push, setapikey, sources

Developers concerned only with consuming packages, for example, need only understand that subset of NuGet commands.

Note

Command option names are case-insensitive. Options that are deprecated are not included in this reference, such as NoPrompt (replaced by NonInteractive) and Verbose (replaced by Verbosity).

Localization

NuGet.exe's progress, warning and error messages are translated into the same locales as Visual Studio. NuGet.exe ships as a single exe, and due to size considerations, only the most commonly surfaced messages are translated in all languages.