【VS开发】visual studio 2015的NuGet Manager解决方案管理功能
NuGet的官方说明是:NuGet是一款Visual Studio的扩展,它可以简单的安装、升级开源库和工具。
官网最醒目的位置就是下载链接,安装完成后我们来快速体验一把。
手上有个小项目需要使用到json格式,一般情况我会先Google一下有没有相关的开源库(这个肯定是有的)。
然后从一些博文中发现了Json.net,然后继续Google之,找到Json.net的官网,然后下载最新的稳定版本,找出DLL文件引用它。
是不是很复杂?很繁琐?(其实没用NuGet之前我一直觉得这样干很方便的)
使用NuGet我们就可以很快搞定了。
右键Managet NuGet Packages

搜索json,然后看看结果和右侧的介绍,Json.net排在第一位,点Install安装。

然后等待下载完成,可以看到引用里面已经有了Json.net了。

那么NuGet到底干了什么呢?下载的开源库在何处呢?看一下输出结果就知道了。

在packages文件夹下可以找到相关dll文件。

还有命令行模式可以选用

还是以Json.net举例,输入Install-Package Newtonsoft.Json即可。

NuGet还有一个优势就是可以处理依赖(我个人觉得Net的依赖复杂程度没有java麻烦)。以Spring.Core为例子,它依赖Common.Logging。
自然NuGet完美解决了。

我没有试升级库功能,但是个人感觉NuGet还是有一些局限的。
首先需要联网(其实可以建立自己的服务器...我粗心了,谢谢了楼下各位了),其次是每次都下载新的,而且会把针对不同.Net版本的都down下来。
原文链接:http://www.cnblogs.com/htynkn/archive/2012/01/29/use_nuget_tools.html
善用VS2015 NuGet Manager解决方案管理功能
NuGet已经是Visual Studio写专案时的柴米油盐酱醋茶了,但有些人可能没发现在解决方案(.sln,Solution)层也可以开启NuGet Manager。如下图,在Solution Explorer的.sln开右键选单,有一个「Manage
NuGet Packages for Solution…」:

在解决方案开启NuGet Manager可以一次检视所有专案的Package安装状况,但在VS2013时代,这功能有点鸡肋。如以下例子,解决方案里总共有三个专案安装两种不同版本HelperSharp,于是NuGet
Manager的Package清单会看到两笔HelperSharp,点选其中一项,右侧则会显示它被安装在哪几个专案( Currently installed in projects),点下Manage钮可以批次移除。

Visual Studio 2015对NuGet Manager介面做了大幅改版,解决方案的套件管理介面变得更贴心好用。首先,同一套件的新旧版本被整合成单一项目,在右侧以清单方式呈现套件在各专案的安装状况,并直接显示安装的版本号码。如果你常常处理元件版本衡突,一定能了解这张汇总清单有多珍贵。:P

而处理元件版本冲突时,更新到最新版有时不是最佳解,降版牵就某些既有程式库反而比较省事。过去NuGet Manager UI只提供解除安装或升级到最新版,要安装特定版本需要使用命令列工具下指令。VS2015的NuGet
Manager安装套件时可由版本清单选取最新版或历史版本,还可透过勾选一次安装或更新多个专案,解决版本衡突一次到位。

身为三不五时要处理元件版本冲突的苦手,发现这个功能的当下,我仿佛看到Visual Studio开发人员对我说「你的痛苦,我懂!」XD 再次为地表最强的开发工具按个赞!
【VS开发】visual studio 2015的NuGet Manager解决方案管理功能的更多相关文章
- Visual Studio 2017无法加载Visual Studio 2015创建的SharePoint解决方案
前几天安装了最新的Visual Studio 2017企业版,发现无法打开之前使用Visual Studio 2015创建的SharePoint 2016解决方案,提示"需要更新" ...
- 关闭Visual Studio 2015 关闭单击打开文件的功能
工具-->选项-->环境-->选项卡和窗口-->预览选项卡 去掉“在解决方案资源管理器中预览选定的文件(在按住Alt的同时单击可避免预览)(X)”的勾选
- 解析Visual Studio 2015促进生产力的10个新功能
1 性能提示 Performance Tips 当我们想知道执行一段代码所耗费的时间时,需要借助于.NET 框架的Stopwatch类,像下面这样: class Program { static vo ...
- 如何正确并完全安装Visual Studio 2015企业版本?
http://blog.csdn.net/code_godfather/article/details/47381631 [简介] 常用网名: 猪头三 出生日期: 1981.XX.XX 个人网站: ...
- Visual Studio 2015 开发 ASP.NET 5 有何变化?
本篇博文目录: ASP.NET 5 模版 ASP.NET 5 目录结构 前端管理工具 无编译开发 Microsoft Git Provider 智能感知和错误信息 Smart Unit Testing ...
- ASP.NET 5系列教程 (五):在Visual Studio 2015中使用Grunt、Bower开发Web程序
基于Visual Studio 2015,你可以: 方便的管理前端包,如jQuery, Bootstrap, 或Angular. 自动运行任务,如LESS.JavaScript压缩.JSLint.Ja ...
- Visual Studio 2015 开发 ASP.NET 5 有何变化?(转)
出处:http://www.cnblogs.com/xishuai/p/visual-studio-2015-preview-asp-net-5-change.html 本篇博文目录: ASP.NET ...
- Visual Studio 2015 开发 ASP.NET 5
在以往微软发布或更新 Visual Studio 版本时,我们开发 ASP.NET 应用程序,带给我们的变化其实并不是很大,或者说你根本就感受不到变化,你感受到的只是下载安装了几个 G 的 Updat ...
- 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus
最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...
随机推荐
- Mysql: 开启慢查询日志[ERROR] unknown variable 'log-slow-queries'处理办法
参考: http://www.dataguru.cn/thread-305503-1-1.html # slow query log qjp 20160921 # mysql5.6版本以上,取消了参数 ...
- 数据库范式以及ER图
数据库范式包括第一.第二.第三以及BCNF范式,关于范式的探讨,博主在知乎上看见了一篇很不错的文章,分享文中,这边就不再做阐述.地址:https://www.zhihu.com/question/24 ...
- Visual Stdio C++ 编译器、链接器常用命令
概览: cmd常用命令配合使用: del 删除指定文件 同erase cls 清屏 rd 删除空目录文件夹 dir 显示目录 cd 在当前盘符跳转指定目录(不同盘符跳转用盘符号)(分别表示根目录 上一 ...
- tomcat 散点杂记
tomcat有很多细碎的知识点和一些坑点,我将再次记录 域名直指项目 我们经常访问项目都要带上项目目录 eg: http://xwiki.test.com/xwiki or http://jenkin ...
- 分布式-信息方式-JMS Topic示例
Topic消息 非持久的 Topic消息示例对于非持久的 Topic消息的发送 基本跟前 ...
- HTML和CSS 入门系列(一):超链接、选择器、颜色、盒模式、DIV布局、图片
一.超链接 二.CSS选择器 CSS的全称叫做: Cascading Style Sheets 级联样式表的缩写. 2.1 类型选择器 2.2 派生选择器 2.3 伪类选择器 <style &g ...
- python环境下安装virtualenv,virtualenvwrapper
在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...
- nginx 与location语法详解
Location语法优先级排列 匹配符 匹配规则 优先级 = 精确匹配 1 ^~ 以某个字符串开头 2 ~ 区分大小写的正则匹配 3 ~* 不区分大小写的正则匹配 4 !~ 区分大小写不匹配的正则 ...
- C++入门经典-例5.6-指针与const
1:同其他数据类型一样,指针也有常量,使用const关键字定义,形式如下: int i=9; int *const p=&i;//无法改变内存指向 *p=3; 将关键字const放在标识符前, ...
- TCP层bind系统调用的实现分析
说明:该文章中部分代码未能完全理解透彻,可能对您造成误解,请慎读: 并建议您先阅读本博另外一篇文章:<Linux TCP套接字选项 之 SO_REUSEADDR && SO_RE ...