当前位置: 首页 > news >正文

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

可以使用 Microsoft Visual Studio 中的 NuGet Package Manager UI 在项目和解决方案中轻松安装、卸载和更新 NuGet 包。

先决条件

  • Visual Studio 2026,其中包含任何与.NET相关的工作负荷。 可以从 visualstudio.microsoft.com 免费安装 2026 Community 版本,也可以使用专业版或企业版。

  • NuGet Package Manager。 安装与.NET相关的工作负荷时,Visual Studio 2017 及更高版本会自动包含 NuGet Package Manager。 若要在 Visual Studio Installer 中手动安装 NuGet Package Manager,请选择Individual 组件>Code 工具>NuGet package manager

查找并安装包

若要使用 Visual Studio 查找并安装 NuGet 包,请执行以下步骤:

  1. Solution Explorer中加载项目,然后选择项目>管理 NuGet 包

    NuGet Package Manager窗口随即打开。

  2. 转到“浏览”选项卡,按当前所选源的受欢迎程度显示包。 有关源的信息,请参阅 包源。

    • 若要搜索特定包,请使用选项卡左上角的搜索框。
    • 每个包 ID 旁边可能会显示缩写信息,以帮助识别正确的包。 此信息因所选包源而异。 示例包括包下载次数、作者或到所有者配置文件的链接。

    注意

    在 Visual Studio 17.11 及更高版本中,当所选包源支持时,包作者显示为个人资料链接。 包所有权由包源定义。 有关详细信息,请参阅 管理 nuget.org 上的包所有者。

    在 Visual Studio 17.10 及更早版本中,将显示包author元数据,显示为纯文本。 有关详细信息,请参阅 作者包元数据。

    • 选择包以打开其详细信息窗格。 在详细信息窗格中,“包详细信息”选项卡显示包元数据、有关所有者、作者和许可证的信息以及其他信息。 详细信息窗格还提供了一种方法,用于选择要安装的版本。

      详细信息窗格的README选项卡会显示软件包的自述文件(如果由包作者提供)。

  3. 在“详细信息”窗格中的“版本”旁边,选择一个版本。 如果要在Version列表中包括预发行版版本,请转到NuGet Package Manager窗口顶部。 在搜索框旁边,选择“包括预发行版”。

  4. 若要安装 NuGet 包,请选择安装。 系统可能会提示你接受许可条款或验证安装。

    Visual Studio在项目中安装包及其依赖项。 安装完成后,添加的包将显示在 NuGet Package ManagerInstalled选项卡上。还可以在项目的Dependencies> 节点中找到包Solution Explorer。 安装包后,可以使用using语句在项目中引用它。

设置包管理格式

NuGet 有两种格式,项目可以使用这些包:

  • PackageReference
  • packages.config

只有某些类型的项目支持这两种包管理格式。 具体而言,具有.csproj文件格式的非 SDK 样式.NET框架项目支持这两种格式。 对于.NET SDK 样式项目,需要PackageReference

建议的格式为PackageReference。 但某些 NuGet 包不完全兼容PackageReference。 有关详细信息,请参阅 包兼容性问题。

有关包管理格式的详细信息,请参阅从 packages.config 到 PackageReference 和 项目类型支持。

若要设置默认格式,请执行以下步骤:

  1. 在 Visual Studio 中,选择Tools>Options
  2. 在侧窗格中,选择NuGet Package Manager,然后选择General
  3. 在主窗口中的“包管理”下,选择默认包管理格式列表中的格式

有关配置此设置的详细信息,请参阅 “选择默认包管理格式”。

卸载软件包

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

  1. Solution Explorer中加载project,选择Project>Manage NuGet 包,然后转到Installed选项卡。

  2. 在主窗格中,选择要卸载的包。 如果需要,请使用搜索框查找包。 然后在包详细信息窗格中,选择“卸载”。

更新一个包

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

  1. Solution Explorer中加载项目,然后选择项目>管理 NuGet 包。 对于通过bin文件夹管理依赖项的旧 ASP.NET 网站项目,请转到Solution Explorer并在打开 NuGet Package Manager UI 之前选择bin文件夹。

  2. 选择“更新”选项卡,列出从包源旁选择的源中具有可用更新的包。 若要在更新列表中包括预发行版包,请转到NuGet Package Manager窗口顶部。 在搜索框旁边,选择“包括预发行版”。

  3. 选择要更新的包。 在详细信息窗格中,在“版本”旁边,选择所需的版本,然后选择“更新”。

更新隐式引用的包

对于某些包,“更新”按钮不可用,并显示以下消息:“SDK 隐式引用。 若要更新包,请更新其所属的 SDK。

此消息指示包是较大框架或 SDK 的一部分,无法独立更新。 例如,当 SDK 样式项目面向 .NET Framework 时,会自动添加Microsoft.NETFramework.ReferenceAssemblies

此类包在内部标记为<IsImplicitlyDefined>True</IsImplicitlyDefined>。 这些包使用 SDK 或运行时进行版本控制,必须通过安装较新的 .NET SDK(而不是使用 NuGet Package Manager)进行更新。

若要下载新版本的框架,请参阅 Download .NET。 有关详细信息,请参阅 .NET 应用程序发布概述。

更新多个软件包

若要将多个包更新到其最新版本,请在 NuGet 包列表中选择这些包,然后选择“更新”。

从“安装”选项卡中进行更新

还可以从“已安装”选项卡更新单个包。在这种情况下,还可以选择版本和Include 预发行版选项。

管理解决方案的软件包

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

  1. Solution Manager 中选择解决方案, 然后选择Tools>NuGet Package Manager>Manage NuGet Packages for Solution

  2. “解决方案的管理包”窗口中,选择要向其应用操作的项目。

合并选项卡

开发人员通常认为,在同一解决方案中跨不同项目使用不同的 NuGet 包版本是错误的。 您可以使用“管理解决方案的包”窗口来为您的 NuGet 包使用通用版本。 为此,请转到“合并”选项卡,发现解决方案中不同项目使用具有不同版本号的包的位置。

在此示例中,MyClassLibrary 项目使用EntityFramework6.5.1,但 MyConsoleApp 使用EntityFramework6.5.0。 若要合并包版本,请执行以下步骤:

  1. 在“合并”选项卡上,选择要在项目列表中更新的项目。

  2. “版本”旁边,选择要用于所有选定项目的版本。

  3. 选择安装

    NuGet Package Manager在所有选定项目中安装所选包版本,并且包不再显示在Consolidate选项卡上。

软件包源

Visual Studio忽略包源的顺序。 而是使用最先响应请求的源包。 有关详细信息,请参阅 还原包。 有关如何从特定源加载包的信息,请参阅 包源映射。

  1. 若要更改 Visual Studio 从中加载包元数据的源,请转到NuGet 包管理器窗口或为解决方案管理包窗口的顶部。 在包源旁边,选择要使用的源。

  2. 若要管理包源,请选择“设置”图标,或选择“工具>选项”。

  3. 若要管理 NuGet 包源,请参阅 Visual Studio 中的 NuGet Package Manager 选项。

NuGet 包管理器选项控制

选择包时,NuGet Package Manager在详细信息窗格中显示可展开的Options控件,位于Version列表下方。 对于大多数项目类型,仅提供“显示预览”窗口复选框。 但对于某些项目类型,其他选项也可用。

NuGet 包管理器的包详细信息窗格中选项控件的屏幕截图,显示用于安装、更新和卸载的选项。

以下部分介绍了可用选项。

安装和更新选项

这些选项仅适用于某些项目类型:

  • 依赖项行为:此选项指定 NuGet 安装的依赖包的版本。 它具有以下设置:

    • 忽略依赖项会跳过依赖项的安装,这通常会中断所安装的包。
    • 最低安装具有满足主所选包要求的最小版本号的依赖项。 此设置是默认设置。
    • 最高补丁安装与所选版本相同的主版本号和次版本号的版本,但补丁编号最高。 例如,如果指定了版本 1.2.2,则安装以 1.2 开头的最高版本。
    • 次高版本安装与所选版本相同主版本号的版本,但具有最高次要版本号和补丁号。 如果指定了版本 1.2.2,则安装以 1 开头的最高版本。
    • 最高版本安装最高可用版本的软件包。
  • 文件冲突操作:此选项指定 NuGet 如何处理项目或本地计算机中已存在的包。 它具有以下设置:

    • 提示指示 NuGet 询问是保留还是覆盖现有包。
    • 忽略所有指示 NuGet 跳过覆盖任何现有包。
    • 覆盖所有指示 NuGet 覆盖任何现有包。

卸载选项

这些选项仅适用于某些项目类型:

  • 删除依赖项:选择此选项后,如果未在项目中其他位置引用依赖包,则删除任何依赖包。

  • 强制卸载,即使存在依赖项:选择此选项时,即使包在项目中被引用,也会卸载包。 此选项通常与“删除依赖项”结合使用,以删除包及其安装的依赖项。 但使用此选项可能会导致项目中的引用中断。 在这种情况下,可能需要 重新安装这些其他包。

相关视频

  • 有关使用 NuGet 进行包管理的视频,请参阅 第 9 频道 和 YouTube。

相关内容

有关 NuGet 的详细信息,请参阅以下文章:

  • NuGet 简介
  • 包使用工作流
  • 为你的项目查找和评估 NuGet 包
  • PackageReference 项目文件中
  • 快速入门:通过 dotnet CLI 安装和使用包
http://www.jsqmd.com/news/752629/

相关文章:

  • 避坑指南:ESP32用Arduino Modbus库时,软串口为啥总收不到数据?
  • AI赋能开发:探索快马平台如何智能辅助skill-creator创建与优化
  • RPG Maker终极解密指南:三步免费解锁游戏资源
  • 观察记录使用Taotoken后API调用的延迟与稳定性表现
  • 初创团队如何利用 Taotoken 统一管理多个大模型 API 密钥
  • 怎么去水印?手机电脑去水印方法全汇总,2026最新实测好用的去水印方式推荐 - 爱上科技热点
  • 实战演练:基于快马平台开发一个功能完备的天天直播带货应用界面
  • GraphvizOnline:用代码绘制专业图表,让复杂可视化变得简单
  • taotoken api密钥的精细化管理与访问审计实践
  • 别再死记硬背真值表了!用Verilog case语句和查找表(LUT)思想,轻松玩转七段数码管译码
  • 构建具备长期记忆与自我进化能力的AI智能体系统
  • [具身智能-571]:Trae SOLO 模式 下通常提供两种核心工作流选项:Plan 模式 和 Spec 模式。这两种模式代表了 AI 协作开发中 “过程驱动” vs “契约驱动” 的两种不同哲学
  • 快手号水印怎么去掉?去掉快手号水印的方法全汇总,2026最新实测有效 - 爱上科技热点
  • 在ZYNQ EBAZ4205上播放1080P视频:基于FrameBuffer的mplayer配置与性能实测
  • 效率倍增:将claude教程的高效编码模式转化为快马平台的自动化工具
  • 保姆级教程:在VMware里给Ubuntu 20.04.3换国内源,安装Python和pip(附阿里云/清华源地址)
  • 当 AI 编码助手变成“泥球制造机“:Matt Pocock 技能集的工程学解构
  • 实战指南:基于快马平台快速构建电商用户购买行为预测模型
  • fre:ac音频转换器:开源免费的终极音频处理解决方案
  • ResearchClaw:为学术研究设计的声明式网络爬虫工具
  • 魔兽世界GSE宏编译器:告别手忙脚乱,一键实现智能连招
  • 【Python低代码配置终极指南】:20年架构师亲授5大避坑法则与3套企业级落地模板
  • 【数据结构与算法面试宝典】22 数据结构模板:如何让解题变成搭积木?
  • 抖音视频怎么去掉水印?去除抖音号水印的方法全汇总,2026最新实测工具推荐 - 爱上科技热点
  • 视频生成与点追踪技术:原理、实现与优化
  • 誉财 YC - 19 全自动圆筒螺纹下摆机:圆筒罗纹下摆缝制的得力助手
  • 腾讯云 CVM + Docker + Jenkins + GitLab CI/CD 全流程指南(python、flask实现简单计算器)
  • RoboBrain 2.5:机器人语义与物理智能的闭环耦合
  • 软文发布平台_软文推广平台_软文营销资源平台 天天低价发稿就选这一家 - 代码非世界
  • 小红书视频提取 2026最新 最新方法汇总|视频怎么保存到手机?提取方式全测评 - 爱上科技热点