NuGet的简单使用
什么是NuGet?
NuGet(读作New Get)是用于微软.NET开发平台的软件包管理器,是一个Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。
通过NuGet你可以很容易的访问到其他开发者发布的软件包,你也可以创建、分享或者发布自己的包到NuGet。微软的EntityFramework、ASP.NET MVC等或者一些常用到的第三方软件包:Json.NET、NUnit等都托管到NuGet上。
为什么要用NuGet?
上面说道NuGet实际上就是一个软件包的托管平台。用过VS的人可能都知道一个叫做VisualStudioGallery的网站,通过这个网站你可以下载使用一些VS的扩展工具、项目模板或者一些常用的软件包,VS中也提供了一个叫做“扩展和更新”的工具能够让你轻松的访问到VisualStudioGallery中的内容。
那么NuGet和VisualStudioGallery有什么区别?我们为什么要用NuGet?
NuGet和VisualStudioGallery的区别
首先NuGet是VS的一个扩展,而VisualStudioGallery是VS扩展的一个托管平台,所以NuGet是包含在VisualStudioGallery内的,其次NuGet和VisualStudioGallery的关注点不同,VisualStudioGallery主要是服务于VS为VS提供插件托管服务的平台,
而NuGet是.NET软件包的管理平台,是为我们项目中使用的软件包提供托管服务的。在项目开发中难免会引用一些其他人开发的类库,NuGet就是为了方便我们引用各种类库而存在的。为什么要用NuGet?
一个大的项目不可能所有的功能都要自己去实现,有句话说的好:“不要轻易造轮子”,最简单直接的办法就是使用别人造好的“轮子”。通常引用一个类库到我们的项目中要先下载或找到类库,然后复制到项目目录,最后添加引用。
如果我们引用的类库有更新的版本并且我们想使用的话又要重新添加引用,一两个倒还好,如果引用数量较多的话重复添加引用是比较麻烦和枯燥的,并且要卸载引用的时候还是要经过几个步骤。
这也就是为什么推荐使用NuGet的原因,NuGet能够让我们轻松的实现对软件包的引用、更新和卸载。
NuGet怎么使用?
前面已经说了什么是NuGet以及我们为什么要用NuGet,接下来我就通过一个简单的控制台程序来说说怎么用NuGet。
1.安装NuGet
你可以从VS的扩展和更新中安装NuGet。

或者从NuGet官方下载安装包。

2.使用NuGet可视化管理器
通过可视化的NuGet管理器你可以浏览当前项目已经安装的包或者浏览、搜索其他的包。


我们选中Newtonsoft.Json,在右侧就会出现Newtonsoft.Json的详细信息,选中要将Newtonsoft.Json下载到的项目,然后点击安装。NuGet会在解决方案目录下创建packages目录并将包下载到该目录
下载完成后VS会自动将Newtonsoft.Json添加到我们的引用。

通过这个管理器你可以方便的对你引用的包进行可视化管理。

3.使用NuGet控制台管理器
除了可视化的管理器外NuGet也为我们提供了一个控制台应用,通常我更喜欢使用控制台管理器,因为使用简单的命令我就能对包进行管理。
打开NuGet控制台管理器。
通过
Install-Package “包名”这个命令我们就能完成对Newtonsoft.Json这个包的引用。
除此之外还可以通过
get-help NuGet来获取其他命令的信息。
Get-Package:获取当前已经安装的包UnInstall-Package:卸载某个包Update-Package:升级某个包
等常用命令,更多命令以及NuGet的详细内容可以查看NuGet官方文档
总结
NuGet的存在使得我们不需要过多的去考虑引用软件包方面的各种问题,我们只需要记住几个简单的命令就能轻松的实现对软件包引用。但它的作用不仅于此,你还可以创建自己的软件包并发布到NuGet上
供他人使用,你也可以搭建自己的服务器来托管你的软件包,这个对于大公司来说很实用,可以将内部开发的软件包统一托管起来,并且方便使用。后面我会继续深入的分析NuGet的使用。
NuGet的简单使用的更多相关文章
- Nuget调用简单封装.
1. 项目引用Dapper作为直接访问, 为了使用方便, 封装一下.达到效果: - 数据库连接配置在webconfig.xml中. - 常用调用方法封装. 调用: //可以采用单例模式. //全局实 ...
- Net包管理NuGet(3)搭建私服及引用私服的包
1,打开vs创建项目(ASP.NET WEB空项目)假设命名为MyNuGet 空项目解决方案如图 2,右键引用>管理NuGet程序包>切到浏览搜索NuGet.Server然后安装(3.1. ...
- Nuget快捷实践
Nuget快捷实践 简介 本文主要包含三个部分,即创建nuget包.上传nuget包和删除nuget包.旨在引导快速使用nuget打包和使用,并实现对于nuget的简单管理. 本文使用的nuget服务 ...
- 记一次结巴分词.net core 2.0版 nuget发布过程
最近用到分词考虑很久,选用了结巴分词,原因见博客Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考 既然选好了,难就开始行动吧 . 查了.ne ...
- Docker - 使用 Nexus3 搭设私有 NuGet 仓库
目录 前言 NuGet Nexus 私有仓库 说明 安装 Nexus 拉取 Nexus 镜像 运行 Nexus Nexus NuGet 仓库简单使用 Nexus 默认帐号 Repositories 上 ...
- NHibernate系列文章二:创建NHibernate工程
摘要 这篇文章介绍了如何创建一个简单的使用NHibernate的控制台应用程序,包括使用NuGet.简单的配置.单表映射.对NHibernate配置文件添加智能提示.使用ISessionFactory ...
- CQRS学习——集成ASP.NET Identity[其五]
[其实和Cqrs没啥关系] 缘由 其实没啥原因,只是觉得以前写了不知多少遍的用户登录复用性太差,实现的功能也不多. 依赖的Nuget包 简单登陆 就简单登陆而言,只需要实现如下接口/抽象类: Stor ...
- 使用RpcLite构建SOA/Web服务(Full .Net Framework)
使用RpcLite构建SOA/Web服务(Full .Net Framework) SOA框架系列 1. 使用RpcLite构建SOA/Web服务 2. 使用RpcLite构建SOA/Web服务(Fu ...
- 一键安装各个版本boost库(无需编译)
1.NuGet 最简单的,用VS自带的NuGet包管理器安装,一般比较常用的上面都有 2.下载exe安装包 在这里https://sourceforge.net/projects/boost/file ...
随机推荐
- VMware虚拟机下安装ubuntu操作系统
安装tools:
- Material Design 常用控件
Material Design Material Design (原质化/材料化设计) 是在2014年Google I/O大会上推出的一套全新的界面设计语言. 意在解决Android平台界面风格不统一 ...
- webpack配置css相关loader注意先后顺序
一.问题描述 在webpack3中,引入animate.css失败. 二.问题分析 1.难道是入口main.js引用方式不对? import animate from 'animate.css' 2. ...
- LOJ.6160.[美团CodeM初赛 RoundA]二分图染色(容斥 组合)
题目链接 \(Description\) 求在\(2n\)个点的完全二分图(两边各有\(n\)个点)上确定两组匹配,使得两个匹配没有交集的方案数. \(n\leq10^7\). \(Solution\ ...
- 17使用systemd方式开机自动启动Home Assistant服务
2018-03-20 15:48:36 转移自网易博客! 首先使用编写文件hass@homeassistant.service,文件内容如下 # 这个文件用于systemd方式自动启动hass服务.# ...
- JavaScript 中的FileReader对象(实现上传图片预览)
方法一:使用js的FileReader对象 1.FileReader对象简介 1.检测浏览器对FileReader的支持 if(window.FileReader) { var fr = new Fi ...
- 在循环中如何取input的值和增加点击事件
{volist name="dianpu" id="dianpu"} <input style="border: none;" rea ...
- kafka创建topics 错误: 找不到或无法加载主类 Files\Java\jdk1.7.0_80\lib;C:\Program
解决方案如下: 在kafka安装目录中找到bin\windows目录中的kafka-run-class.bat找到%CLASSPATH%为其加上双引号
- day29 二十九、元类、单例
一.eval.exec内置函数 1.eval函数 eval内置函数的使用场景: ①执行字符串会得到相应的执行结果 ②一般用于类型转换得到dict.list.tuple等 2.exec函数 exec应用 ...
- vue table 固定首列和首行
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...