使用 NuGet 包管理器在 Visual Studio 中安装和管理包
https://docs.microsoft.com/zh-cn/nuget/consume-packages/install-use-packages-visual-studio
通过 Windows 版 Visual Studio 中的 NuGet 包管理器 UI,可轻松安装、卸载和更新项目和解决方案中的 NuGet 包。 若要了解 Visual Studio for Mac 的使用体验,请参阅在项目中包括 NuGet 包。 Visual Studio Code 中不包含包管理器 UI。
备注
如果 Visual Studio 2015 中缺少 NuGet 包管理器,请选中“工具”>“扩展和更新...” 并搜索“NuGet 包管理器” 扩展。 如果无法在 Visual Studio 中使用扩展安装程序,请直接从 https://dist.nuget.org/index.html 下载扩展。
从 Visual Studio 2017 开始,NuGet 和 NuGet 包管理器会与任何 .NET 相关的工作负载一起自动安装。 通过在 Visual Studio 安装程序中选择“单个组件”>“代码工具”>“NuGet 包管理器” 选项,可以单独安装它。
查找和安装包
在“解决方案资源管理器”中,右键单击“引用”或某个项目,然后选择“管理 NuGet 包...” 。
“浏览” 选项卡按当前所选来源的受欢迎程度显示包(请参阅包源)。 使用左上角的搜索框搜索特定包。 从列表中选择一个包以显示其信息,此操作还会启用“安装” 按钮以及版本选择下拉列表。
从下拉列表中选择所需的版本,然后选择“安装” 。 Visual Studio 随即将包及其依赖项安装到项目中。 系统可能会要求你接受许可条款。 安装完成后,添加的包将显示在“已安装” 选项卡上。包同时还列在解决方案资源管理器的“引用” 节点中,表明可以使用
using
语句在项目中引用它们。
提示
若要在搜索中包含预发布版本,并在版本下拉列表中提供预发布版本,请选中“包含预发布版本” 选项。
卸载包
在“解决方案资源管理器” 中,右键单击“引用” 或所需项目,然后选择“管理 NuGet 包...” 。
选择“已安装” 选项卡。
选择要卸载的包(如有必要,使用搜索来筛选列表)并选择“卸载” 。
请注意,在卸载包时,“包含预发布版本” 和“包源” 控件无效。
更新包
在“解决方案资源管理器” 中,右键单击“引用” 或所需项目,然后选择“管理 NuGet 包...” 。(在网站项目中,右键单击“Bin” 文件夹。)
选择“更新” 选项卡,查看所选包源中包含可用更新的包。 选中“包含预发布版本” ,以便在更新列表中包含预发布版本的包。
选择要更新的包,从右侧的下拉列表中选择所需的版本,然后选择“更新” 。
对于某些包,“更新” 按钮处于禁用状态,并显示一条消息,指示它是“由 SDK 隐式引用”(或“AutoReferenced”)。 此消息表明该包是较大框架或 SDK 的一部分,不能单独更新。 (此类包在内部标有
<IsImplicitlyDefined>True</IsImplicitlyDefined>
。)例如,Microsoft.NETCore.App
是 .NET Core SDK 的一部分,并且包版本与应用程序使用的运行时框架的版本不同。 需要更新 .NET Core 安装以获取新版本的 ASP.NET Core 和 .NET Core 运行时。 请参阅本文档,详细了解 .NET Core 元包和版本控制。 这适用于以下常用包:- Microsoft.AspNetCore.All
- Microsoft.AspNetCore.App
- Microsoft.NETCore.App
- NETStandard.Library
若要将多个包更新到其最新版本,请在列表中选中它们,然后选择列表上方的“更新” 按钮。
还可以从“已安装” 选项卡更新单个包。在这种情况下,包的详细信息包括版本选择器(受“包含预发布版本” 选项的约束)和“更新” 按钮。
管理解决方案的包
管理解决方案的包是同时处理多个项目的便捷方式。
选择“工具”>“NuGet 包管理器”>“管理解决方案的 NuGet 包...”菜单命令,或右键单击解决方案,然后选择“管理 NuGet 包...” :
管理解决方案的包时,UI 让你可以选择受操作影响的项目:
“合并”选项卡
开发人员通常认为,在同一解决方案的不同项目中使用相同 NuGet 包的不同版本的做法不好。 当你选择管理解决方案的包时,包管理器 UI 提供了一个“合并” 选项卡,让你可以轻松查看解决方案中不同项目使用的具有不同版本号的包:
在本例中,ClassLibrary1 项目使用的是 EntityFramework 6.2.0,而 ConsoleApp1 使用的是 EntityFramework 6.1.0。 若要合并包版本,请执行以下操作:
- 在项目列表中选择要更新的项目。
- 选择要在“版本” 控件中的所有项目中使用的版本,例如 EntityFramework 6.2.0。
- 选择“安装”按钮 。
包管理器将选定的包版本安装到所有选定的项目中,之后包不再显示在“合并”选项卡上 。
包源
若要更改 Visual Studio 从中获取包的源,请从源选择器中选择一个源:
管理包源:
在下面的包管理器 UI 中选择“设置” 图标,或使用“工具”>“选项” 命令并滚动到“NuGet 包管理器” :
选择“包源”节点 :
要添加源,请选择“+” ,编辑名称,在“源” 控件中输入 URL 或路径,然后选择“更新” 。 选择器下拉列表中现在显示源。
若要更改包源,请选中它,在“名称” 和“源” 框中进行编辑,然后选择“更新” 。
若要禁用包源,请清除列表中名称左侧的框。
若要删除包源,请选中它,然后选择“X” 按钮。
使用向上和向下箭头按钮不会更改包源的优先级顺序。 Visual Studio 会忽略包源的顺序,使用来自任何首先响应请求的源的包。有关详细信息,请参阅包源。
提示
如果在删除某个包源后,该包源重新出现,则它可能会列在计算机级或用户级 NuGet.Config
文件中。 有关这些文件的位置,请参阅常见 NuGet 配置,然后通过手动编辑文件或使用 nuget 源命令删除源。
包管理器“选项”控件
选择包后,包管理器 UI 会在版本选择器下方显示一个可扩展的“选项”小控件(此处显示为折叠和展开) 。 请注意,对于某些项目类型,仅提供“显示预览窗口”选项 。
以下各节介绍了这些选项。
显示预览窗口
选中此选项后,模式窗口将显示安装包之前所选包的依赖项:
安装与更新选项
(并非适用于所有项目类型。)
“依赖项行为” 用于配置 NuGet 如何决定要安装哪些版本的依赖包:
- “忽略依赖项” 会跳过安装任何依赖项,这通常会破坏正在安装的软件包。
- 如果选择“最低” [默认选项],则安装具有可满足主要选定包要求的最小版本号的依赖项。
- 如果选择“最高版本的修补程序” ,则安装的版本的主要版本号和次要版本号相同,但修补程序版本号最高。 例如,如果指定版本 1.2.2,则会安装以 1.2 开头的最高版本
- 如果选择“最高次要版本” ,则安装的版本的主要版本号相同,但次要版本号和修补程序版本号最高。 如果指定版本 1.2.2,则会安装以 1 开头的最高版本
- 选择“最高” 可安装包的最高可用版本。
“文件冲突操作” 指定 NuGet 应如何处理项目或本地计算机中已存在的包:
- “提示” 指示 NuGet 询问是保留还是覆盖现有包。
- “全部忽略” 指示 NuGet 跳过覆盖任何现有包。
- “全部覆盖” 指示 NuGet 覆盖任何现有包。
卸载选项
(并非适用于所有项目类型。)
“删除依赖项” :如果选中,则删除任何依赖包(如果它们未在项目中的其他位置引用)。
“在存在依赖项时仍强制卸载” :选中后,即使在项目中仍然引用了该包,也会卸载它。 此选项通常与“删除依赖项” 一起选中,用于删除包及其安装的任何依赖项。 不过,使用此选项可能会导致项目中的引用中断。 在这种情况下,可能需要重新安装其他包。
使用 NuGet 包管理器在 Visual Studio 中安装和管理包的更多相关文章
- 在 Visual Studio 中安装 FxCop 分析器
本文转自 微软官网 : https://docs.microsoft.com/zh-cn/visualstudio/code-quality/install-fxcop-analyzers?view= ...
- 在visual studio中找到属性管理器
方法一: 我们可以在新建的项目中通过视图-->其他窗口-->属性管理器来找到. 这样就能找到属性管理器了. 感谢:https://blog.csdn.net/qq_37939434/art ...
- Visual Studio中安装viemu后,vim vax 快捷键大全
高效率移动 在插入模式之外 基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM就像一个“哑巴”编辑器一样.很多新手都会一直呆在插入模式里面,因为这样易于使用.但VIM的强大之处在于 ...
- [Xamarin.iOS] Visual Studio中Xamarin.iOS项目,无法加入PCL项目参考、NuGet组件参考
[Xamarin.iOS] Visual Studio中Xamarin.iOS项目,无法加入PCL项目参考.NuGet组件参考 解决方案 目前Visual Studio中最新版本的Xamarin.iO ...
- 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目
原文: 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目 本主题介绍如何在以下产品中使用 一键式发布 发布(部署)Web 应用程序项目: Visual Studio ...
- 教程:在 Visual Studio 中开始使用 Flask Web 框架
教程:在 Visual Studio 中开始使用 Flask Web 框架 Flask 是一种轻量级 Web 应用程序 Python 框架,为 URL 路由和页面呈现提供基础知识. Flask 被称为 ...
- 教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门 Django 是高级 Python 框架,用于快速.安全及可扩展的 Web 开发. 本教程将在 Visual Studio 提供 ...
- 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...
- [转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
本文转自:http://www.cnblogs.com/stg609/p/3673782.html 开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framew ...
随机推荐
- MVC开发之注入容器Ninject的使用
背景 在不使用注入容器之前,我们的项目往往存在着大量耦合的类,这使得我们在开发大型项目时难以维护.比如下面这个简单的MVC框架的例子,计算购物车的产品价格总和: /// <summary> ...
- leetcode四道组合总和问题总结(39+40+216+377)
39题目: 链接:https://leetcode-cn.com/problems/combination-sum/ 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 ...
- web渗透漏洞靶场收集
最近将自己遇到过或者知道的web靶场链接奉上 0X01 DVWA 推荐新手首选靶场,配置简单,需下载phpstudy和靶场文件包,简单部署之后即可访问. 包含了常见的web漏洞(php的),每个漏洞分 ...
- IO流学习之字节流(二)
字节流缓冲区: 1.BufferedInputStream 构造函数(以字节流为基础进行操作): 常用方法: 代码实例: package InputOutput; import java.io.Buf ...
- 咸鱼的ACM之路:动态规划(DP)学习记录
按挑战程序设计竞赛介绍的顺序记录一遍学习DP的过程. 1. 01背包问题 问题如下: 有N个物品,每个物品(N[i])都有一定的体积(W[i]),和一定的价值(V[i]) 现在给定一个背包,背包的容量 ...
- ACM-ICPC 2018 焦作赛区网络预赛 Give Candies 题解
ACM-ICPC 2018 焦作赛区网络预赛 Give Candies n个糖果分给n个小朋友 从1到n个小朋友依次给,每次随机给个数,至少一个,知道没有糖果为止. 问糖果的分布情况方案数. 输出方案 ...
- LAMP(六)之以CentOS6自带的rpm包组合安装lamp
1.Centos7部署应用wordpress 1. 安装php.php-mysql.mariadb yum install php php-mysql mariadb-server 2. 测试 cd ...
- Vuejs+elementUI框架开发的项目结构及文件关系
项目结构|----- build #webpack编译相关文件目录,一般不用动 |----- config #配置目录| |------ dev.env.js #开发环境变量| |-- ...
- (转)git使用规范
转自:http://www.ruanyifeng.com/blog/2015/08/git-use-process.html 团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个 ...
- webpack如何编译ES6打包
前言:随着ES的普及我们越来越多的开始使用ES6的语法了,当然也随着mvvm框架的流行少不了js模块化,那js模块化又有那些呢 在很早的时候大家都用的命名空间,现在也有人用(库名.类别名.方法名) 后 ...