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 ...
随机推荐
- DDoS攻击与防御(3)
3.攻击应用资源网络应用和服务在处理数据时,通常需要消耗一定的网络连接.计算和存储资源,这些资源是由应用程序向系统进行申请并自行管理和维护的.消耗应用资源的DDoS攻击就是通过向应用提交大量消耗资源的 ...
- 把.Net开发环境迁移到Linux上去
.Net Core发布之前,多年来,.Net程序员的开发环境都在Windows上. 三街第一帅的我,虽然上班的8小时一直在windows上撸C#,但是下班时间一般都在搞其他的乱七八糟的东西,比如写写小 ...
- selenium截取具体元素图片(python版)
原理: 1.截图(整个窗口) 2.获取此元素坐标 element = driver.find_element_by_id("xx") element.location) 3.获取此 ...
- XVIII Open Cup named after E.V. Pankratiev. GP of Romania
A. Balance 不难发现确定第一行第一列后即可确定全部,列不等式单纯形求解线性规划即可. #include<cstdio> #include<algorithm> usi ...
- PHP文件上传大小限制问题
一.Thinkphp方面限制 $upload->maxSize = 31457280 ; //设置附件上传大小 二.七牛方面限制: 'UPLOAD_FILE_QINIU' => ...
- 关于Android studio 设置点击打不开的解决
今天早上觉得字体太小了想改下字体发现设置点不开,后来发现是打了汉化包的bug,后来换了一个汉化包就能打开了.
- [LeetCode] Number of Subarrays with Bounded Maximum 有界限最大值的子数组数量
We are given an array A of positive integers, and two positive integers L and R (L <= R). Return ...
- AJAX-快速上手(四个步骤)
## 1, ajax ajax是使用js进行在不重新加载页面的情况下,使得页面局部刷新.而传统的页面加载即需要,重新加载整个页面.它的加载是异步进行的,即在加载的同时,页面的其他部分可以正常使用,不会 ...
- 7、vue-awesome-swiper页面跳转
<template> <swiper :options='swiperOption' ref="mySwiper" class='swiper-container ...
- 26 Arcpy跳坑系列——ExportToPNG
最近在学习Arcpy的时候,还真是遇到了一个磨人的小妖精,我本来是想得到一个透明背景的png图的,根据官方的帮助文档, https://desktop.arcgis.com/zh-cn/arcmap/ ...