| title | 在 Visual Studio 中使用控制台安装和管理 NuGet 包 | |
|---|---|---|
| description | 有关在 Visual Studio 中使用 NuGet 包管理器控制台以处理包的说明。 | |
| author | karann-msft | |
| ms.author | karann | |
| ms.date | 07/08/2019 | |
| ms.topic | conceptual | |
| f1_keywords |
|
|
| ms.openlocfilehash | 42031f7b5fe4d3c1b4dbe5e1bfbf9197014e0e88 | |
| ms.sourcegitcommit | 2b50c450cca521681a384aa466ab666679a40213 | |
| ms.translationtype | HT | |
| ms.contentlocale | zh-CN | |
| ms.lasthandoff | 04/07/2020 | |
| ms.locfileid | 79428575 |
借助 NuGet 包管理器控制台,可以使用 NuGet PowerShell 命令查找、安装、卸载和更新 NuGet 包。 如果包管理器 UI 未提供执行操作的方法,则必须使用控制台。 若要在控制台中使用 nuget.exe CLI 命令,请参阅在控制台中使用 nuget.exe CLI。
Windows 版 Visual Studio 中内置了该控制台。 Visual Studio for Mac 或 Visual Studio Code 中未提供该控制台。
例如,通过三个简单的步骤查找和安装包:
-
在 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
Important
控制台中可用的全部操作也可以通过 NuGet CLI 完成。 但是,控制台命令在 Visual Studio 和已保存的项目/解决方案的上下文中运行,并且通常比其等效的 CLI 命令完成更多操作。 例如,通过控制台安装包会添加对项目的引用,而 CLI 命令则不会执行此操作。 因此,在 Visual Studio 中工作的开发人员通常更愿意使用控制台而不是 CLI。
Tip
许多控制台操作依赖于在 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 控制器和视图:
通过 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.CommandLine 包:
# Other versions are available, see https://www.nuget.org/packages/NuGet.CommandLine/
Install-Package NuGet.CommandLine -Version 4.4.1


