问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用 NuGet 包管理器在 Visual Studio 中安装和管理包

创作时间:
作者:
@小白创作中心

使用 NuGet 包管理器在 Visual Studio 中安装和管理包

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/nuget/consume-packages/install-use-packages-visual-studio?WT.mc_id=DT-MVP-33797

本文详细介绍了如何在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 包,请执行以下步骤:

  1. 解决方案资源管理器中加载项目,然后选择项目>管理 NuGet 包
    NuGet 包管理器窗口随即打开。
  2. 选择“浏览”选项卡,按当前所选源的受欢迎程度显示包(请参阅包源)。
  • 若要搜索特定包,请使用左上角的搜索框。
  • 每个包 ID 旁边可能会显示缩写信息,以帮助标识正确的包,并因所选包源而异。 示例包括包下载计数、作者或所有者配置文件超链接。
    注意
    在 Visual Studio 17.11 及更高版本中,当所选包源支持时,包所有者显示为个人资料超链接。 包所有权由包源定义。 例如,请参阅管理 nuget.org上的包所有者。
    在 Visual Studio 17.10 及更早版本中,将显示包作者的元数据,并以纯文本形式呈现。 有关详细信息,请参阅作者包元数据。
  • 选择包以查看详细的包信息。 右侧的“详细信息”窗格随即显示,可用于选择要安装的版本。
    你可以在“包详细信息”选项卡和包自述文件(如果包作者提供)的“自述文件”选项卡中看到包元数据、有关所有者、作者、许可证等的信息。
  1. 在右窗格中,从下拉列表中选择版本。 如果要在版本列表中包括预发行版版本,请选择包括预发行版
  2. 若要安装 NuGet 包,请选择安装。 系统可能会要求你接受许可条款或提示你验证安装。
    Visual Studio 在项目中安装包及其依赖项。 安装完成后,添加的包将显示在“已安装”选项卡上。还可以在解决方案资源管理器依赖项>节点中找到项目的包。 安装包后,可以使用
    using
    语句在项目中引用它。
  3. (可选)NuGet 有两种格式,项目可以使用包:PackageReference和packages.config。若要设置默认格式,请选择工具>选项,展开NuGet 包管理器,选择常规,然后选择默认包管理格式。 有关详细信息,请参阅选择默认包管理格式。

卸载软件包

若要卸载 NuGet 包,请执行以下步骤:

  1. 解决方案资源管理器中加载项目,选择项目>管理 NuGet 包,然后选择已安装选项卡。
  2. 选择要在左窗格中卸载的包(如有必要,请使用“搜索”框找到它),然后从右窗格中选择卸载

更新一个包

若要更新 NuGet 包,请执行以下步骤:

  1. 解决方案资源管理器中加载项目,然后选择项目>管理 NuGet 包。 对于网站项目,请首先选择Bin文件夹。
  2. 选择“更新”选项卡,查看从所选包源获取可用更新的包。 选择包括预发行版以在更新列表中包括预发行版包。
  3. 选择要更新的包。 在右窗格中,从下拉列表中选择所需的版本,然后选择更新

  1. 对于某些包,将禁用更新按钮,并显示以下消息: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

  1. 若要将多个包更新为其最新版本,请在 NuGet 包列表中选择这些包,然后选择更新
  2. 还可以从“安装”选项卡更新单个包。在这种情况下,还可以选择版本包括预发行版选项。

管理解决方案的软件包

管理解决方案的包是同时处理多个项目的便捷方法:

  1. 解决方案管理器中选择解决方案,然后选择工具>NuGet 包管理器>管理解决方案的 NuGet 包
  2. “管理解决方案的 NuGet 包”窗口中,选择受作影响的项目。

合并选项卡

开发人员通常认为,在同一解决方案中跨不同项目使用不同的 NuGet 包版本是错误的。 Visual Studio 允许对 NuGet 包使用通用版本。 为此,请使用NuGet 包管理器窗口的“合并”选项卡来发现解决方案中不同项目使用不同版本号的包的位置。

在此示例中,ClassLibrary1 项目使用的是 EntityFramework 6.2.0,而 ConsoleApp1 使用的是 EntityFramework 6.1.0。 若要合并包版本,请执行以下步骤:

  1. 在“合并”选项卡中,选择要在项目列表中更新的项目。
  2. 选择要用于版本列表中的所有这些项目的版本。
  3. 选择安装
    NuGet 包管理器将所选包版本安装到所有选定项目中,之后包不再显示在“合并”选项卡上。

软件包源

Visual Studio 会忽略包源的顺序,并使用第一个响应请求的源中的包。 有关详细信息,请参阅还原包。 有关如何从特定源加载包的信息,请参阅包源映射。
若要管理 NuGet 包源,请执行以下步骤:

  1. 若要更改 Visual Studio 从中加载包元数据的源,请从包源选择器中选择源。
  2. 若要管理包源,请选择设置图标,或选择工具>选项
  3. 选项窗口中,展开NuGet 包管理器节点,然后选择包源

  1. 若要添加源,请选择**+,编辑名称在源中输入 URL 或路径,然后选择更新**。
    源现在显示在包源下拉列表中。
  2. 若要更改包源,请选中它,在名称框中进行编辑,然后选择更新
  3. 若要禁用包源,请清除列表中名称左侧的框。
  4. 若要删除包源,请选择它,然后选择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 的详细信息,请参阅以下文章:

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号