Create the first install package. In Visual Studio select 'Build' 'Build Solution' option to start the build. After the build is completed successfully, it will create two main files: HelloWorld.exe which is the output from the C# project and Installer Project.msi which is the installation package.
-->The NuGet Package Manager Console lets you use NuGet PowerShell commands to find, install, uninstall, and update NuGet packages. Using the console is necessary in cases where the Package Manager UI does not provide a way to perform an operation. To use
nuget.exe
CLI commands in the console, see Using the nuget.exe CLI in the console.The console is built into Visual Studio on Windows. It is not included with Visual Studio for Mac or Visual Studio Code.
Find and install a package
For example, finding and installing a package is done with three easy steps:
- Open the project/solution in Visual Studio, and open the console using the Tools > NuGet Package Manager > Package Manager Console command.
- Find the package you want to install. If you already know this, skip to step 3.
- Run the install command:
Important
All operations that are available in the console can also be done with the NuGet CLI. However, console commands operate within the context of Visual Studio and a saved project/solution and often accomplish more than their equivalent CLI commands. For example, installing a package through the console adds a reference to the project whereas the CLI command does not. For this reason, developers working in Visual Studio typically prefer using the console to the CLI.
Tip
Many console operations depend on having a solution opened in Visual Studio with a known path name. If you have an unsaved solution, or no solution, you can see the error, 'Solution is not opened or not saved. Please ensure you have an open and saved solution.' This indicates that the console cannot determine the solution folder. Saving an unsaved solution, or creating and saving a solution if you don't have one open, should correct the error.
Opening the console and console controls
- Open the console in Visual Studio using the Tools > NuGet Package Manager > Package Manager Console command. The console is a Visual Studio window that can be arranged and positioned however you like (see Customize window layouts in Visual Studio).
- By default, console commands operate against a specific package source and project as set in the control at the top of the window:
- Selecting a different package source and/or project changes those defaults for subsequent commands. To overrride these settings without changing the defaults, most commands support
-Source
and-ProjectName
options. - To manage package sources, select the gear icon. This is a shortcut to the Tools > Options > NuGet Package Manager > Package Sources dialog box as described on the Package Manager UI page. Also, the control to the right of the project selector clears the console's contents:
- The rightmost button interrupts a long-running command. For example, running
Get-Package -ListAvailable -PageSize 500
lists the top 500 packages on the default source (such as nuget.org), which could take several minutes to run.
Install a package
See Install-Package.
Installing a package in the console performs the same steps as described on What happens when a package is installed, with the following additions:
- The Console displays applicable license terms in its window with implied agreement. If you do not agree to the terms, you should uninstall the package immediately.
- Also a reference to the package is added to the project file and appears in Solution Explorer under the References node, you need to save the project to see the changes in the project file directly.
Uninstall a package
See Uninstall-Package. Use Get-Package to see all packages currently installed in the default project if you need to find an identifier.
Uninstalling a package performs the following actions:
- Removes references to the package from the project (and whatever management format is in use). References no longer appear in Solution Explorer. (You might need to rebuild the project to see it removed from the Bin folder.)
- Reverses any changes made to
app.config
orweb.config
when the package was installed. - Removes previously-installed dependencies if no remaining packages use those dependencies.
Update a package
See Get-Package and Update-Package
Find a package
See Find-Package. In Visual Studio 2013 and earlier, use Get-Package instead.
Availability of the console
Starting in Visual Studio 2017, NuGet and the NuGet Package Manager are automatically installed when you select any .NET-related workloads; you can also install it individually by checking the Individual components > Code tools > NuGet package manager option in the Visual Studio installer.
Also, if you're missing the NuGet Package Manager in Visual Studio 2015 and earlier, check Tools > Extensions and Updates... and search for the NuGet Package Manager extension. If you're unable to use the extensions installer in Visual Studio, you can download the extension directly from https://dist.nuget.org/index.html.
The Package Manager Console is not presently available with Visual Studio for Mac. The equivalent commands, however, are available through the NuGet CLI. Visual Studio for Mac does have a UI for managing NuGet packages. See Including a NuGet package in your project.
The Package Manager Console is not included with Visual Studio Code.
Extend the Package Manager Console
Some packages install new commands for the console. For example,
MvcScaffolding
creates commands like Scaffold
shown below, which generates ASP.NET MVC controllers and views:Set up a NuGet PowerShell profile
A PowerShell profile lets you make commonly-used commands available wherever you use PowerShell. NuGet supports a NuGet-specific profile typically found at the following location:
To find the profile, type
$profile
in the console:For more details, refer to Windows PowerShell Profiles.
Use the nuget.exe CLI in the console
To make the
-->nuget.exe
CLI available in the Package Manager Console, install the NuGet.CommandLine package from the console:The NuGet Package Manager UI in Visual Studio on Windows allows you to easily install, uninstall, and update NuGet packages in projects and solutions. For the experience in Visual Studio for Mac, see Including a NuGet package in your project. The Package Manager UI is not included with Visual Studio Code.
Note
If you're missing the NuGet Package Manager in Visual Studio 2015, check Tools > Extensions and Updates... and search for the NuGet Package Manager extension. If you're unable to use the extensions installer in Visual Studio, download the extension directly from https://dist.nuget.org/index.html.
Starting in Visual Studio 2017, NuGet and the NuGet Package Manager are automatically installed with any .NET-related workloads. Install it individually by selecting the Individual components > Code tools > NuGet package manager option in the Visual Studio installer.
Find and install a package
- In Solution Explorer, right-click either References or a project and select Manage NuGet Packages....
- The Browse tab displays packages by popularity from the currently selected source (see package sources). Search for a specific package using the search box on the upper left. Select a package from the list to display its information, which also enables the Install button along with a version-selection drop-down.
- Select the desired version from the drop-down and select Install. Visual Studio installs the package and its dependencies into the project. You may be asked to accept license terms. When installation is complete, the added packages appear on the Installed tab. Packages are also listed in the References node of Solution Explorer, indicating that you can refer to them in the project with
using
statements.
Tip
To include prerelease versions in the search, and to make prerelease versions available in the version drop-down, select the Include prerelease option.
Uninstall a package
- In Solution Explorer, right-click either References or the desired project, and select Manage NuGet Packages....
- Select the Installed tab.
- Select the package to uninstall (using search to filter the list if necessary) and select Uninstall.
- Note that the Include prerelease and Package source controls have no effect when uninstalling packages.
Update a package
- In Solution Explorer, right-click either References or the desired project, and select Manage NuGet Packages.... (In web site projects, right-click the Bin folder.)
- Select the Updates tab to see packages that have available updates from the selected package sources. Select Include prerelease to include prerelease packages in the update list.
- Select the package to update, select the desired version from the drop-down on the right, and select Update.
- For some packages, the Update button is disabled and a message appears saying that it's 'Implicitly referenced by an SDK' (or 'AutoReferenced'). This message indicates that the package is part of a larger framework or SDK and should not be updated independently. (Such packages are internally marked with
<IsImplicitlyDefined>True</IsImplicitlyDefined>
.) For example,Microsoft.NETCore.App
is part of the .NET Core SDK, and the package version is not the same as the version of the runtime framework used by the application. You need to update your .NET Core installation to get new versions of the ASP.NET Core and .NET Core runtime. See this document for more details on .NET Core metapackages and versioning. This applies to the following commonly used packages:- Microsoft.AspNetCore.All
- Microsoft.AspNetCore.App
- Microsoft.NETCore.App
- NETStandard.Library
- To update multiple packages to their newest versions, select them in the list and select the Update button above the list.
- You can also update an individual package from the Installed tab. In this case, the details for the package include a version selector (subject to the Include prerelease option) and an Update button.
Manage packages for the solution
Managing packages for a solution is a convenient means to work with multiple projects simultaneously.
- Select the Tools > NuGet Package Manager > Manage NuGet Packages for Solution... menu command, or right-click the solution and select Manage NuGet Packages...:
- When managing packages for the solution, the UI lets you select the projects that are affected by the operations:
Consolidate tab
Developers typically consider it bad practice to use different versions of the same NuGet package across different projects in the same solution. When you choose to manage packages for a solution, the Package Manager UI provides a Consolidate tab on which you can easily see where packages with distinct version numbers are used by different projects in the solution:
In this example, the ClassLibrary1 project is using EntityFramework 6.2.0, whereas ConsoleApp1 is using EntityFramework 6.1.0. To consolidate package versions, do the following:
- Select the projects to update in the project list.
- Select the version to use in all those projects in the Version control, such as EntityFramework 6.2.0.
- Select the Install button.
The Package Manager installs the selected package version into all selected projects, after which the package no longer appears on the Consolidate tab.
Package sources
To change the source from which Visual Studio obtains packages, select one from the source selector:
To manage package sources:
- Select the Settings icon in the Package Manager UI outlined below or use the Tools > Options command and scroll to NuGet Package Manager:
- Select the Package Sources node:
- To add a source, select +, edit the name, enter the URL or path in the Source control, and select Update. The source now appears in the selector drop-down.
- To change a package source, select it, make edits in the Name and Source boxes, and select Update.
- To disable a package source, clear the box to the left of the name in the list.
- To remove a package source, select it and then select the X button.
- Using the up and down arrow buttons does not change the priority order of the package sources. Visual Studio ignores the order of package sources, using the package from whichever source is first to respond to requests. For more information, see Package restore.
Tip
If a package source reappears after deleting it, it may be listed in a computer-level or user-level
NuGet.Config
files. See Common NuGet configurations for the location of these files, then remove the source by editing the files manually or using the nuget sources command.Package manager Options control
When a package is selected, the Package Manager UI displays a small, expandable Options control below the version selector (shown here both collapsed and expanded). Note that for some project types, only the Show preview window option is provided.
The following sections explain these options.
Show preview window
When selected, a modal window displays which the dependencies of a chosen package before the package is installed:
Install and Update Options
(Not available for all project types.)
Dependency behavior configures how NuGet decides which versions of dependent packages to install:
- Ignore dependencies skips installing any dependencies, which typically breaks the package being installed.
- Lowest [Default] installs the dependency with the minimal version number that meets the requirements of the primary chosen package.
- Highest Patch installs the version with the same major and minor version numbers, but the highest patch number. For example, if version 1.2.2 is specified then the highest version that starts with 1.2 will be installed
- Highest Minor installs the version with the same major version number but the highest minor number and patch number. If version 1.2.2 is specified, then the highest version that starts with 1 will be installed
- Highest installs the highest available version of the package.
File conflict action specifies how NuGet should handle packages that already exist in the project or local machine:
- Prompt instructs NuGet to ask whether to keep or overwrite existing packages.
- Ignore All instructs NuGet to skip overwriting any existing packages.
- Overwrite All instructs NuGet to overwrite any existing packages.
Uninstall Options
(Not available for all project types.)
Remove dependencies: when selected, removes any dependent packages if they're not referenced elsewhere in the project.
![Nuget install package command line Nuget install package command line](/uploads/1/2/6/3/126334841/985265061.png)
Force uninstall even if there are dependencies on it: when selected, uninstalls a package even if it's still being referenced in the project. This is typically used in combination with Remove dependencies to remove a package and whatever dependencies it installed. Using this option may, however, lead to broken references in the project. In such cases, you may need to reinstall those other packages.