什么是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的简单使用相关推荐

  1. 使用 Nexus3镜像搭设私有仓库(Bower 、Docker、Maven、npm、NuGet、Yum、PyPI)

    Docker - 使用 Nexus3 搭设私有 NuGet 仓库 Nexus 默认帐号 Repositories 上传组件包(Package) Repositories 说明 准备 Package 上 ...

  2. linux mkdir 文件夹,Linux mkdir 创建文件夹命令

    介绍: 该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录 语法: mkdir [-m] [-p] 目录名 选项介绍: -m: 对新建目录设置 ...

  3. NuGet学习笔记(1) 初识NuGet及快速安装使用

    原文作者:懒惰的肥兔  博客地址:https://www.cnblogs.com/lzrabbit/archive/2012/04/30/2476255.html 关于NuGet园子里已经有不少介绍及 ...

  4. NuGet学习笔记(3) 搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

  5. 如何在nuget上传自己的包+搭建自己公司的NuGet服务器(新方法)

    运维相关:http://www.cnblogs.com/dunitian/p/4822808.html#iis 先注册一个nuget账号https://www.nuget.org/ 下载并安装一下Nu ...

  6. 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler...

    在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自 ...

  7. c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法

    c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...

  8. WPF MvvmLight简单实例(1) 页面导航

    原文:WPF MvvmLight简单实例(1) 页面导航 实现了那些功能,先看看截图: 操作描述: 在程序运行后,点击"Load"按钮,页面会加载PageOne,点击PageOne ...

  9. ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 异常和错误处理 上一章节中,我们学习了 ASP.NET Cor ...

最新文章

  1. 生成pojo mysql_通过数据库表反向生成pojo类
  2. 直播 | ACL 2021论文解读:低资源语言场景下的跨语言文本摘要
  3. 数据结构与算法 完整版双链表
  4. php api接口怎么写,php如何写api接口?
  5. rgba与16进制颜色格式互转
  6. 数据结构——顺序表 SqList *L 和 SqList * L的区别
  7. pdf转word:扫描全能王 vs WPS(会员功能)对比,过程记录和反思
  8. 坚果pro android版本号,锤子手机/坚果U3-Pro-SE/坚果Pro2特别版-LOS-安卓9.0.0-稳定版Stable3.0-来去电归属-农历等-本地化增强...
  9. Docker之通过阿里云的镜像加速器快速拉取镜像到本地
  10. 澳洲航空和香港航空在OAG的准点率报告中获得五星评级
  11. Python如何输出当前时间,时分秒,以及ms
  12. 23王道考研数据操作目录一览
  13. 通过css实现图片过渡放大的效果
  14. 使用树莓派搭建家用 NAS
  15. .msi文件安装报错
  16. 详细解解读贴片电容:NP0、C0G、X7R、X5R、Y5V、Z5U的区别
  17. access2007 mysql_Access2007基础教程:开始使用Access 2007
  18. Zoom(多人手机云视频会议软件)
  19. 考研小助手 Mathematica 麦酱教你算不定积分 wolfram alpha
  20. 三维模型转换工具大全

热门文章

  1. 使用handler倒计时
  2. Plugin org.apache.maven.plugins:maven-resources-plugin:2.6
  3. 系统搭建遇到问题3:Ubuntu问题造成网卡名称异常导致Vivado绑定网卡地址的Lic无法正常工作(JESD)...
  4. Oracle存储过程(转)
  5. C51存储器类型与51单片机的物理区域
  6. JavaScript 判断浏览器类型
  7. 原生JS实现淡入淡出效果(fadeIn/fadeOut/fadeTo)
  8. HDU odd-even number 数位dp
  9. android 开发艾特功能,Android Binder
  10. c语言实现socket转json,C++解析JSON进行网络传输--一个通过JSON方式的socket传输