这节来讲一下.NET下的包管理平台:NuGet。

我们做一个项目,除了自己的代码文件之外,实际上还要引用诸多代码文件,这些文件可能是我们自己封装的底层框架代码,或者为了完成某个功能而引用的工具类文件等等。在.NET里边,这些可被引用的,负责完成某个可复用功能的代码,我们可以封装为动态链接库(Dynamic Link Library,.dll),也可以通俗说打包,在需要的地方,我们把这个包引用到项目中,就可以使用其功能。NuGet就是一个专门管理这些包的平台,所有开发者可以将自己的优秀代码打包上传到这个平台,供全球开发者使用。并且,在这个平台上,我们可以查看到这个包的依赖,比如这个包依赖.NET Framework 4.5的环境,那我们就知道自己的项目可不可以使用这个包,或者这个包可以还要依赖一些另外的包,我们可以清楚的了解到这一整个层级关系。

我们可以访问:www.nuget.org,来进入NuGet网站,从中搜索自己需要的包。

以QRCoder这个包为例子(www.nuget.org/packages/QRCoder)。我们可以看到它支持哪些框架,以及如何通过命令行的形式将其引用到项目中(我们稍后演示),点击中间这些页签可以查看其具体支持的框架版本,依赖及它自己的发布版本历史等等。同时在右侧这一栏中,可以看到项目网站,源代码链接,开源许可等等。通过网站中这些信息,我们可以更好地去判断自己的项目是否可以放心的使用这个包。

VisualStudio支持通过图形界面和命令行两种形式来使用NuGet引入自己需要的包,下面来为大家演示一下:

  • 图形界面

我们可以在项目或者解决方案上点击鼠标右键,在弹出菜单中选择“管理NuGet包”进入NuGet包管理图形界面。

我们还是以QRCoder包为例子,如果从解决方案右键进入此界面,点击这一条后,右侧会显示该解决方案下所有的项目,您需要选择至少一个项目,指定哪个项目要使用这个包,同时在项目选择框下方,您可以选择要引用的版本(系统默认最新稳定版),然后点击“安装”按钮,系统开始下载并自动安装该包,安装时,系统会自动将这个包的依赖一并下载安装,我们静待安装完成即可。
    安装以后,安装按钮上方的卸载按钮会被激活,如果经测试该包的功能不合适自己的项目,您可以回到此点击卸载。对于已安装的包,您可以在“已安装”这个页面查看或者在双击项目名称在配置文件中查看:

如果被引用的包出现了新版本,您可以在“更新”页面查看,是否更新,可以您自行判断。

  • 包管理器命令行

您可以通过以下两种方式打开包管理器命令行:

点击后,会在VS页面底部弹出命令行界面:

另外,您可以指定要包的来源(Package source)和要引用的项目(Default project):

对于包的来源,您也可以点击后边的小齿轮按钮,自定义来源,对于某些在公司内部共享的包,您可以通过此界面来配置为公司内部NuGet网站:

您可以使用以下三种命令来完成包的安装,更新和卸载:

Install-Package 包名 [-Version 版本号] //安装
Update-Package 包名 [-Version 版本号] //更新
Uninstall-Package 包名 //卸载

这个方式也比较简单,在NuGet网站中,每个包的主页也能看到这些命令,您可以直接复制:

最新文章

  1. android 底层入门开发(二)
  2. UILabel顶部对齐解决方法(转载)
  3. gym101090 I Painting the natural numbers
  4. RFID读卡器设置卡
  5. 2014 Multi-University Training Contest 5
  6. windows volume related concepts
  7. 常用的js对象扩展方法
  8. Oracle EBS-SQL (MRP-6):检查MRP计划运行报错原因之超大数据查询1.sql
  9. HTML5新特性学习-2
  10. Mongdb 访问
  11. ROWNUMBER()、RANK()、DENSE_RANK()、NTILE1
  12. Hbase 常用命令
  13. OJ随笔——【1102-海明距离】——位运算
  14. Struts2处理流程性需求的一种解决方案
  15. MVC详解:mvc是什么?为什么要用MVC?MVC工作原理以及MVC优缺点
  16. CentOS MariaDB 安装和配置
  17. flask中单选、多选、下拉框的获取
  18. API--ResponseBody-类
  19. SQL大杂烩
  20. 数据迁移_老集群RAC迁移数据恢复到新集群RAC

热门文章

  1. 什么是 ThreadLocal 变量?
  2. Linux如何查看某个端口是否被占用
  3. 学习Git(二)
  4. read,readline,readlines的特点与区别
  5. 学习saltstack (四)
  6. 我常用的插件之“Mybatis Log plugin”sql日志格式转化
  7. python-验证6174猜想
  8. 集合框架基础三——Map
  9. HTML5有哪些更新(部分)
  10. Python中使用模块和库编程