在 Visual Studio 中使用包管理器控制台安装和管理包 (PowerShell)
借助 NuGet 包管理器控制台,可以使用 NuGet PowerShell 命令查找、安装、卸载和更新 NuGet 包。 如果包管理器 UI 未提供执行操作的方法,则必须使用控制台。 若要在控制台中使用 nuget.exe CLI 命令,请参阅在控制台中使用 nuget.exe CLI。
Windows 版 Visual Studio 中内置了该控制台。 Visual Studio for Mac 或 Visual Studio Code 中未提供该控制台。
重要
此处列出的命令特定于 Visual Studio 中的包管理器控制台,它不同于常规 PowerShell 环境中提供的包管理模块命令。 具体而言,每个环境都有一些命令,这些命令在其他环境中不可用,而具有相同名称的命令在其特定参数中也可能不同。 使用 Visual Studio 中的包管理控制台时,本主题中所述的命令和参数适用。
查找和安装包
例如,通过三个简单的步骤查找和安装包:
在 Visual Studio 中打开项目/解决方案,然后使用“工具”>“NuGet 包管理器”>“包管理器控制台”命令打开控制台。
找到要安装的包。 如果你已经知道此操作步骤,请跳至步骤 3。
# Find packages containing the keyword "elmah" Find-Package elmah运行安装命令:
# Install the Elmah package to the project named MyProject. Install-Package Elmah -ProjectName MyProject
重要
控制台中可用的全部操作也可以通过 NuGet CLI 完成。 但是,控制台命令在 Visual Studio 和已保存的项目/解决方案的上下文中运行,并且通常比其等效的 CLI 命令完成更多操作。 例如,通过控制台安装包会添加对项目的引用,而 CLI 命令则不会执行此操作。 因此,在 Visual Studio 中工作的开发人员通常更愿意使用控制台而不是 CLI。
提示
许多控制台操作依赖于在 Visual Studio 中通过已知路径名打开解决方案。 如果你有未保存的解决方案或没有解决方案,可以看到错误:“解决方案未打开或未保存。 请确保已打开并保存解决方案。”这表明控制台无法确定解决方案文件夹。 保存未保存的解决方案,或者如果没有打开解决方案,则创建并保存解决方案,这些操作应该可以纠正错误。
打开控制台和控制台控件
在 Visual Studio 中使用“工具”>“NuGet 包管理器”>“包管理器控制台”命令打开控制台。 控制台是一个 Visual Studio 窗口,可以根据需要进行排列和放置(请参阅在 Visual Studio 中自定义窗口布局)。
默认情况下,控制台命令针对窗口顶部控件中设置的特定包源和项目执行操作:

选择不同的包源和/或项目会更改后续命令的默认值。 要在不更改默认值的情况下覆盖这些设置,大多数命令都支持
-Source和-ProjectName选项。若要管理包源,请选择齿轮图标。 这是“工具”>“选项”>“NuGet 包管理器”>“包源”对话框的快捷方式,如包管理器 UI 页中所述。 此外,项目选择器右侧的控件可清除控制台的内容:

最右边的按钮会中断长时间运行的命令。 例如,运行
Get-Package -ListAvailable -PageSize 500会列出默认源(例如 nuget.org)上的前 500 个包,这可能需要几分钟才能运行完毕。
安装包
# Add the Elmah package to the default project as specified in the console's project selector
Install-Package Elmah
# Add the Elmah package to a project named UtilitiesLib that is not the default
Install-Package Elmah -ProjectName UtilitiesLib
请参阅 Install-Package。
在控制台中安装包执行的步骤与安装包时会发生什么情况相同,只不过它添加了以下内容:
- 控制台在其窗口中显示适用的许可条款,并附带隐含协议。 如果你不同意这些条款,应立即卸载包。
- 此外,对包的引用也会添加到项目文件中,并显示在“引用”节点下的“解决方案资源管理器”中,需要保存项目才能直接查看项目文件中的更改。
卸载包
# Uninstalls the Elmah package from the default project
Uninstall-Package Elmah
# Uninstalls the Elmah package and all its unused dependencies
Uninstall-Package Elmah -RemoveDependencies
# Uninstalls the Elmah package even if another package depends on it
Uninstall-Package Elmah -Force
请参阅 Uninstall-Package。 如果需要查找标识符,请使用 Get-Package 查看当前安装在默认项目中的所有包。
卸载包将执行以下操作:
- 从项目中删除对包的引用(以及正在使用的任何管理格式)。 引用不再出现在“解决方案资源管理器”中。 (可能需要重建项目才能看到它已从 Bin 文件夹中删除。)
- 安装包后,撤销对
app.config或web.config的任何更改。 - 如果没有其余包使用这些依赖项,则删除以前安装的依赖项。
更新包
# Checks if there are newer versions available for any installed packages
Get-Package -updates
# Updates a specific package using its identifier, in this case jQuery
Update-Package jQuery
# Update all packages in the project named MyProject (as it appears in Solution Explorer)
Update-Package -ProjectName MyProject
# Update all packages in the solution
Update-Package
请参阅 Get-Package 和 Update-Package
查找包
# Find packages containing keywords
Find-Package elmah
Find-Package logging
# List packages whose ID begins with Elmah
Find-Package Elmah -StartWith
# By default, Get-Package returns a list of 20 packages; use -First to show more
Find-Package logging -First 100
# List all versions of the package with the ID of "jquery"
Find-Package jquery -AllVersions -ExactMatch
请参阅 Find-Package。 在 Visual Studio 2013 及更早版本中,请改用 Get-Package。
控制台的可用性
从 Visual Studio 2017 开始,当你选择任何与 .NET 相关的工作负载时,会自动安装 NuGet 和 NuGet 包管理器;不过,也可以通过在 Visual Studio 安装程序中选中“单个组件”>“代码工具”>“NuGet 包管理器”选项来单独安装它。
另外,如果你在 Visual Studio 2015 及更早版本中缺少 NuGet 包管理器,请选中“工具”>“扩展和更新...”并搜索“NuGet 包管理器”扩展。 如果无法在 Visual Studio 中使用扩展安装程序,可以直接从 https://dist.nuget.org/index.html 下载扩展。
Visual Studio for Mac 目前不提供包管理器控制台。 但是,可以通过 NuGet CLI 获取等效命令。 Visual Studio for Mac 确实有一个用于管理 NuGet 包的 UI。 请参阅在项目中包括 NuGet 包。
Visual Studio Code 中不包含包管理器控制台。
扩展包管理器控制台
某些包为控制台安装新命令。 例如,MvcScaffolding 创建如下所示的 Scaffold 命令,用于生成 ASP.NET MVC 控制器和视图:

设置 NuGet PowerShell 配置文件
通过 PowerShell 配置文件,可以在每次使用 PowerShell 时使用常用命令。 NuGet 支持通常位于以下位置的 NuGet 特定配置文件:
%UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1
要查找配置文件,请在控制台中键入 $profile:
$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1
有关更多详细信息,请参阅 Windows PowerShell 配置文件。
在控制台中使用 nuget.exe CLI
若要在包管理器控制台中使用 nuget.exe CLI,请从控制台安装 NuGet.CommandLine 包:
# Other versions are available, see https://www.nuget.org/packages/NuGet.CommandLine/
Install-Package NuGet.CommandLine -Version 4.4.1