使用 NuGet 包管理器在 Visual Studio 中安装和管理包
使用 NuGet 包管理器在 Visual Studio 中安装和管理包
本文详细介绍了如何在Visual Studio中使用NuGet包管理器来安装、卸载和更新包。内容包括查找并安装包、卸载包、更新包、管理解决方案的包、包源管理以及NuGet包管理器的选项控件等。
通过 visual Studio for Windows Microsoft中的 NuGet 包管理器 UI,可以轻松地在项目和解决方案中安装、卸载和更新 NuGet 包。
本文仅适用于 Windows 用户。 如果您使用的是 Visual Studio for Mac,请参阅向项目中添加 NuGet 包。
先决条件
- 安装包含任何 .NET 相关工作负荷的 Windows 版 Visual Studio 2022。
你可以从visualstudio.microsoft.com免费安装 2022 社区版,也可以使用专业版或企业版。
Visual Studio 2017 及更高版本在安装与 .NET 相关的工作负荷时会自动包含 NuGet 包管理器。 若要在 Visual Studio 安装程序中单独安装它,请选择“单个组件”选项卡,然后在Code 工具下选择NuGet 包管理器。
对于 Visual Studio 2015,如果缺少 NuGet 包管理器,请检查工具>扩展和更新并搜索NuGet 包管理器扩展。 如果无法在 Visual Studio 中使用扩展安装程序,请直接从https://dist.nuget.org/index.html下载该扩展。 - nuget.org注册免费帐户(如果还没有帐户)。 必须先注册并确认帐户,然后才能上传 NuGet 包。
查找并安装包
若要使用 Visual Studio 查找并安装 NuGet 包,请执行以下步骤:
- 在解决方案资源管理器中加载项目,然后选择项目>管理 NuGet 包。
NuGet 包管理器窗口随即打开。 - 选择“浏览”选项卡,按当前所选源的受欢迎程度显示包(请参阅包源)。
- 若要搜索特定包,请使用左上角的搜索框。
- 每个包 ID 旁边可能会显示缩写信息,以帮助标识正确的包,并因所选包源而异。 示例包括包下载计数、作者或所有者配置文件超链接。
注意
在 Visual Studio 17.11 及更高版本中,当所选包源支持时,包所有者显示为个人资料超链接。 包所有权由包源定义。 例如,请参阅管理 nuget.org上的包所有者。
在 Visual Studio 17.10 及更早版本中,将显示包作者的元数据,并以纯文本形式呈现。 有关详细信息,请参阅作者包元数据。 - 选择包以查看详细的包信息。 右侧的“详细信息”窗格随即显示,可用于选择要安装的版本。
你可以在“包详细信息”选项卡和包自述文件(如果包作者提供)的“自述文件”选项卡中看到包元数据、有关所有者、作者、许可证等的信息。
- 在右窗格中,从下拉列表中选择版本。 如果要在版本列表中包括预发行版版本,请选择包括预发行版。
- 若要安装 NuGet 包,请选择安装。 系统可能会要求你接受许可条款或提示你验证安装。
Visual Studio 在项目中安装包及其依赖项。 安装完成后,添加的包将显示在“已安装”选项卡上。还可以在解决方案资源管理器依赖项>包节点中找到项目的包。 安装包后,可以使用
using
语句在项目中引用它。 - (可选)NuGet 有两种格式,项目可以使用包:PackageReference和packages.config。若要设置默认格式,请选择工具>选项,展开NuGet 包管理器,选择常规,然后选择默认包管理格式。 有关详细信息,请参阅选择默认包管理格式。
卸载软件包
若要卸载 NuGet 包,请执行以下步骤:
- 在解决方案资源管理器中加载项目,选择项目>管理 NuGet 包,然后选择已安装选项卡。
- 选择要在左窗格中卸载的包(如有必要,请使用“搜索”框找到它),然后从右窗格中选择卸载。
更新一个包
若要更新 NuGet 包,请执行以下步骤:
- 在解决方案资源管理器中加载项目,然后选择项目>管理 NuGet 包。 对于网站项目,请首先选择Bin文件夹。
- 选择“更新”选项卡,查看从所选包源获取可用更新的包。 选择包括预发行版以在更新列表中包括预发行版包。
- 选择要更新的包。 在右窗格中,从下拉列表中选择所需的版本,然后选择更新。
- 对于某些包,将禁用更新按钮,并显示以下消息:SDK 隐式引用。若要更新包,请更新其所属的 SDK。此消息指示包是较大框架或 SDK 的一部分,不能单独更新。 此类包在内部标记为
True
。 例如,
Microsoft.NETCore.App
是 .NET Core SDK 的一部分,包版本与应用程序使用的运行时框架版本不同。 要下载 .NET Core 的新版本,请先更新您的 .NET Core 安装。 有关详细信息,请参阅.NET Core 元包和版本控制。 此方案适用于以下常用包:
- Microsoft.AspNetCore.All
- Microsoft.AspNetCore.App
- Microsoft.NETCore.App
- NETStandard.Library
- 若要将多个包更新为其最新版本,请在 NuGet 包列表中选择这些包,然后选择更新。
- 还可以从“安装”选项卡更新单个包。在这种情况下,还可以选择版本和包括预发行版选项。
管理解决方案的软件包
管理解决方案的包是同时处理多个项目的便捷方法:
- 在解决方案管理器中选择解决方案,然后选择工具>NuGet 包管理器>管理解决方案的 NuGet 包。
- 在“管理解决方案的 NuGet 包”窗口中,选择受作影响的项目。
合并选项卡
开发人员通常认为,在同一解决方案中跨不同项目使用不同的 NuGet 包版本是错误的。 Visual Studio 允许对 NuGet 包使用通用版本。 为此,请使用NuGet 包管理器窗口的“合并”选项卡来发现解决方案中不同项目使用不同版本号的包的位置。
在此示例中,ClassLibrary1 项目使用的是 EntityFramework 6.2.0,而 ConsoleApp1 使用的是 EntityFramework 6.1.0。 若要合并包版本,请执行以下步骤:
- 在“合并”选项卡中,选择要在项目列表中更新的项目。
- 选择要用于版本列表中的所有这些项目的版本。
- 选择安装。
NuGet 包管理器将所选包版本安装到所有选定项目中,之后包不再显示在“合并”选项卡上。
软件包源
Visual Studio 会忽略包源的顺序,并使用第一个响应请求的源中的包。 有关详细信息,请参阅还原包。 有关如何从特定源加载包的信息,请参阅包源映射。
若要管理 NuGet 包源,请执行以下步骤:
- 若要更改 Visual Studio 从中加载包元数据的源,请从包源选择器中选择源。
- 若要管理包源,请选择设置图标,或选择工具>选项。
- 在选项窗口中,展开NuGet 包管理器节点,然后选择包源。
- 若要添加源,请选择**+,编辑名称,在源中输入 URL 或路径,然后选择更新**。
源现在显示在包源下拉列表中。 - 若要更改包源,请选中它,在名称和源框中进行编辑,然后选择更新。
- 若要禁用包源,请清除列表中名称左侧的框。
- 若要删除包源,请选择它,然后选择X按钮。
如果包源在删除后重新出现,它可能会列在计算机级或用户级NuGet.config文件中。 有关这些文件的位置,请参阅通用 NuGet 配置。 通过手动编辑文件或使用nuget sources 命令删除文件中的包源。
NuGet 包管理器选项控件
选择包时,NuGet 包管理器会显示版本选择器下方的可展开选项控件。 对于大多数项目类型,仅提供了“显示预览”窗口选项。
以下部分介绍了可用选项。
安装和更新选项
这些选项仅适用于某些项目类型:
- 依赖项行为:此选项配置 NuGet 如何决定要安装的依赖包的版本。 它具有以下设置:
- 忽略依赖项会跳过依赖项的安装,这通常会中断所安装的包。
- 最低[默认值] 安装具有满足主所选包要求的最小版本号的依赖项。
- 最高修补程序安装具有相同主版本号和次要版本号的版本,但修补程序编号最高。 例如,如果指定版本 1.2.2,则将安装以 1.2 开头的最高版本
- 最高次要安装版本具有相同的主要版本号,但次要版本号和修补程序编号最高。 如果指定了版本 1.2.2,则将安装以 1 开头的最高版本
- 最高版本安装最高可用版本的软件包。
- 文件冲突操作:此选项指定 NuGet 如何处理项目或本地计算机中已存在的包。 它具有以下设置:
- 提示指示 NuGet 询问是保留还是覆盖现有包。
- 忽略所有指示 NuGet 跳过覆盖任何现有包。
- 覆盖所有指示 NuGet 覆盖任何现有包。
卸载选项
这些选项仅适用于某些项目类型:
- 删除依赖项:选中后,如果未在项目中其他位置引用依赖包,则删除任何依赖包。
- 即使存在依赖项,也强制卸载:选择此选项后,即使包仍在项目中被引用,也将卸载该包。 此选项通常与删除依赖项结合使用,以删除包及其安装的任何依赖项。 但是,使用此选项可能会导致项目中的引用中断。 在这种情况下,可能需要重新安装这些其他包。
相关视频
- 在第 9 频道和YouTube上查找 NuGet 视频。
另请参阅
有关 NuGet 的详细信息,请参阅以下文章: