-->
Looking to install a package? See Ways to install NuGet packages.
To work with NuGet, as a package consumer or creator, you can use command-line interface (CLI) tools as well as NuGet features in Visual Studio. This article briefly outlines the capabilities of the different tools, how to install them, and their comparative feature availability. To get started using NuGet to consume packages, see Install and use a package (dotnet CLI) and Install and use a package (Visual Studio). To get started creating NuGet packages, see Create and publish a NET Standard package (dotnet CLI) and Create and publish a NET Standard package (Visual Studio).
Tool | Description | Download |
---|---|---|
dotnet.exe | CLI tool for .NET Core and .NET Standard libraries, and for any SDK-style project such as one that targets .NET Framework. Included with the .NET Core SDK and provides core NuGet features on all platforms. (Starting in Visual Studio 2017, the dotnet CLI is automatically installed with any .NET Core related workloads.) | .NET Core SDK |
nuget.exe | CLI tool for .NET Framework libraries and for any non-SDK-style project such as one that targets .NET Standard libraries. Provides all NuGet capabilities on Windows, provides most features on Mac and Linux when running under Mono. | nuget.exe |
Visual Studio | On Windows, provides NuGet capabilities through the Package Manager UI and Package Manager Console; included with .NET-related workloads. On Mac, provides certain features through the UI. In Visual Studio Code, NuGet features are provided through extensions. | Visual Studio |
Jamf Pro is comprehensive enterprise management software for the Apple platform, simplifying IT management for Mac, iPad, iPhone and Apple TV. Jamf Pro is comprehensive enterprise management software for the Apple platform, simplifying IT management for Mac, iPad, iPhone and Apple TV.
The MSBuild CLI also provides the ability to restore and create packages, which is primarily useful on build servers. MSBuild is not a general-purpose tool for working with NuGet.
CLI tools
The two NuGet CLI tools are dotnet.exe
and nuget.exe
. See feature availability for a comparison.
- To target .NET Core or .NET Standard, use the dotnet CLI. The
dotnet
CLI is required for the SDK-style project format, which uses the SDK attribute. - To target .NET Framework (non-SDK-style project only), use the
nuget.exe
CLI. If the project is migrated frompackages.config
to PackageReference, use the dotnet CLI.
dotnet.exe CLI
The .NET Core 2.0 CLI, dotnet.exe
, works on all platforms (Windows, Mac, and Linux) and provides core NuGet features such as installing, restoring, and publishing packages. dotnet
provides direct integration with .NET Core project files (such as .csproj
), which is helpful in most scenarios. dotnet
is also built directly for each platform and does not require you to install Mono.
Installation:
- On developer computers, install the .NET Core SDK. Starting in Visual Studio 2017, the dotnet CLI is automatically installed with any .NET Core related workloads.
- For build servers, follow the instructions on Using .NET Core SDK and tools in Continuous Integration.
To learn how to use basic commands with the dotnet CLI, see Install and use packages using the dotnet CLI.
nuget.exe CLI
The nuget.exe
CLI, nuget.exe
, is the command-line utility for Windows that provides all NuGet capabilities; it can also be run on Mac OSX and Linux using Mono with some limitations.
To learn how to use basic commands with the nuget.exe
CLI, see Install and use packages using the nuget.exe CLI.
Installation:
Windows
Note
NuGet.exe 5.0 and later require .NET Framework 4.7.2 or later to execute.
- Visit nuget.org/downloads and select NuGet 3.3 or higher (2.8.6 is not compatible with Mono). The latest version is always recommended, and 4.1.0+ is required to publish packages to nuget.org.
- Each download is the
nuget.exe
file directly. Instruct your browser to save the file to a folder of your choice. The file is not an installer; you won't see anything if you run it directly from the browser. - Add the folder where you placed
nuget.exe
to your PATH environment variable to use the CLI tool from anywhere.
macOS/Linux
Behaviors may vary slightly by OS distribution.
Install Mono 4.4.2 or later.
Execute the following command at a shell prompt:
Create an alias by adding the following script to the appropriate file for your OS (typically
~/.bash_aliases
or~/.bash_profile
):Reload the shell. Test the installation by entering
nuget
with no parameters. NuGet CLI help should display.
Tip
Use nuget update -self
on Windows to update an existing nuget.exe to the latest version.
Note
The latest recommended NuGet CLI is always available at https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
. For compatibility purposes with older continuous integration systems, a previous URL, https://nuget.org/nuget.exe
currently provides the deprecated 2.8.6 CLI tool.
Visual Studio
Visual Studio Code: NuGet capabilities are available through marketplace extensions, or use the
dotnet.exe
ornuget.exe
CLI tools.Visual Studio for Mac: certain NuGet capabilities are built in directly. See Including a NuGet package in your project for a walkthrough. For other capabilities, use the
dotnet.exe
ornuget.exe
CLI tools.Visual Studio on Windows: The NuGet Package Manager is included with Visual Studio 2012 and later. Visual Studio provides the Package Manager UI and the Package Manager Console, through which you can run most NuGet operations.
- Starting in Visual Studio 2017, the installer includes the NuGet Package Manager with any workload that employs .NET. To install separately, or to verify that the Package Manager is installed, run the Visual Studio installer and check the option under Individual Components > Code tools > NuGet package manager.
- The Package Manager UI and Console are unique to Visual Studio on Windows. They are not presently available on Visual Studio for Mac.
- A CLI tool is required to support NuGet features in the IDE. You can use either the
dotnet
CLI or the thenuget.exe
CLI. Thedotnet
CLI is installed with some Visual Studio workloads, such as .NET Core. Thenuget.exe
CLI must be installed separately as described earlier. - Package Manager Console commands work only within Visual Studio on Windows and do not work within other PowerShell environments.
- For Visual Studio 2010 and earlier, install the 'NuGet Package Manager for Visual Studio' extension.
- NuGet Extensions for Visual Studio 2013 and 2015 can also be downloaded from https://dist.nuget.org/index.html.
- If you'd like to preview upcoming NuGet features, install a Visual Studio Preview, which works side-by-side with stable releases of Visual Studio. To report problems or share ideas for previews, open an issue on the NuGet GitHub repository.
Feature availability
Feature | dotnet CLI | nuget CLI (Windows) | nuget CLI (Mono) | Visual Studio (Windows) | Visual Studio for Mac |
---|---|---|---|---|---|
Search packages | ✔ | ✔ | ✔ | ✔ | |
Install/uninstall packages | ✔ | ✔(1) | ✔ | ✔ | ✔ |
Update packages | ✔ | ✔ | ✔ | ✔ | |
Restore packages | ✔ | ✔ | ✔(2) | ✔ | ✔ |
Manage package feeds (sources) | ✔ | ✔ | ✔ | ✔ | |
Manage packages on a feed | ✔ | ✔ | ✔ | ||
Set API keys for feeds | ✔ | ✔ | |||
Create packages(3) | ✔ | ✔ | ✔(4) | ✔ | |
Publish packages | ✔ | ✔ | ✔ | ✔ | |
Replicate packages | ✔ | ✔ | |||
Manage global-package and cache folders | ✔ | ✔ | ✔ | ||
Manage NuGet configuration | ✔ | ✔ |
(1) Does not affect project files; use dotnet.exe
instead.
(2) Works only with packages.config
file and not with solution (.sln
) files.
(3) Various advanced package features are available through the CLI only as they aren't represented in the Visual Studio UI tools.
(4) Works with .nuspec
files but not with project files.
Related topics
Developers working on Windows can also explore the NuGet Package Explorer, an open-source, stand-alone tool to visually explore, create, and edit NuGet packages. It's very helpful, for example, to make experimental changes to a package structure without rebuilding the package.
Are you tired of typing in a user name and password every time you fetch from or push to remote Git repositories? Me too! We have good news! Today we are announcing the open-source release of the Git Credential Manager (GCM) for Mac and Linux. This follows the release of the GCM for Windows. We ported this tool to Mac and Linux to simplify their authentication to remote Git repositories, in particular those hosted in Visual Studio Team Services (VSTS).
The GCM is a Git credential helper that assists with multi-factor authentication. Compared to Git’s built-in credential storage (such as wincred for Windows), which provides single-factor authentication support for remote Git repositories, the GCM provides multi-factor authentication support for VSTS (and soon GitHub). Secondary factors of authentication in VSTS can be configured per-account and include phone calls, SMS, or mobile app notifications.
After installing the GCM, when connecting to a remote Git repository hosted in VSTS for the first time, the GCM will open a web browser window so that you can authenticate and authorize access to your account (via OAuth 2.0):
This allows the GCM to use the OAuth access token to create a VSTS Personal Access Token (PAT) scoped for vso.code_write, effectively granting Git permission to read and write to your Git repositories hosted in VSTS. The PAT is then stored in a file under your home directory (protected by your individual file system permissions) and will be used for future accesses to the remote Git repositories so that you are not repeatedly asked to sign in.
At any time, you can revoke the Personal Access Token through your VSTS profile settings:
Manager For Mac Accounting Software
For more information, see the GCM documentation on the VSTS Java site or go browse the GCM source code on GitHub.
Visual Studio For Mac
You can follow the Java ALM team on Twitter or on Facebook.