关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录。

  初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package Manager,右键项目文件多了一项Manage Nuget Packages...,这是个神马玩意儿,当时是一头雾水,后台查了些资料才知到NuGet是 Visual Studio的一个扩展,引用dudu的话来说就是管理程序的包包,可以参考msdn上这篇文章使用 NuGet 管理项目库以及咱们博客园站长dudu写的程序员,用NuGet管理好你的类库,有些类似java中常用的maven  

为什么要使用NuGet

  简单的说NuGet可以是我们的工作更方便,当我们的项目里要引用到的一些库时候,比如JQuery、Newtonsoft.Json、log4net等,我们需要从网上下载这些库,然后依次拷贝到各个项目中,当有的类库有更新时又不得不再重复一遍很是繁琐 ,这时就可以考虑使用NuGet来帮我们管理和更新这些类库,而且更新类库时会自动添加类库的相关引用,方便至极。当然网上一些我们常用的类库更新频率不是很高而且即便出了新版本我们也没必要总是保持最新,故这点对我们的帮助比较有限,个人认为NuGet最大的好处在于可以搭建自己的类库服务器,想想一下吧,在一些较大些的公司里面有很多的项目,然后其中有一些是整个组,甚至整个公司通用的类库,当这些类库有更新后我们需要依次拷贝到我们的项目,甚至于有时候我们自己都搞不清楚各个项目里的版本是否一致,有时偶尔一两个项目忘了复制更新出现莫名其妙的错误,为此头疼不已,现在有了NuGet,世界从此而不同。

安装NuGet扩展

要使用NuGet首先需要安装它(在安装了MVC3的系统上已自动安装了NuGet)

1.点击 工具-->扩展管理器(R)...-->右上角搜索框输入NuGet

2.点击 NuGetPackage Manager 项上面的下载按钮开始下载NuGet

3.下载完成后出现安装页面,点安装开始安装

4.很快安装完成,然后点击关闭完成整个安装

5.安装完后NuGet暂时不能用,需要重新启动下VS才行,重启后完毕后打开 扩展管理器(R)... 在已安装的扩展里可以看到NuGet Package Manager已经安装好了

使用NuGet下载需要的类库

1.打开NuGet管理界面

2.出现如下界面,可以在里面找自己想要的类库也可以在右上角搜索里面输入关键字查找自己想要的类库,找到合适自己的类库后点install进行安装

3.这里我们选择安装Json.Net,点击安装好出现组件下载界面

4.下载完成后会出现提示将类库安装到什么项目,这里我们选择安装到TestConsole项目

5.安装完成后可以看到已经安装的Josn.Net显示一个已安装的小对勾

6.打开项目引用可以看到我们刚选择的类库Newtonsoft.Json已经自动添加到项目引用中

使用命令行管理你的类库

1.NuGet提供了命令行安装方法,在菜单中选择Package Manager Console,打开命令行控制台

2.出现NuGet控制台界面,默认类库源(Package source)为官方站点,也可以指向自己搭建的本地或内网站点,Default project表示默认将下载的类库添加到那个项目的引用中

3.NuGet控制台有几个常用命令

Get-Package 获取当前项目已经安装的类库

Install-Package 安装指定类库,命令格式如下:Install-Package 类库ID,如Install-Package Newtonsoft.Json 这里需要注意的是类库的ID是唯一的,指向命令后会自动搜索指定类库源里指定ID类库,若找到则自动下载并添加引用,找不到则会出现找不到类库的提示

Uninstall-Package 卸载指定类库,命令格式如下:Uninstall-Package 类库ID,如Uninstall-Package Newtonsoft.Json

Update-Package 更新指定类库,命令格式如下:Update-Package 类库ID,如Update-Package Newtonsoft.Json

ps:刚开始不熟悉时可以使用界面方式下载和更新类库,有一定经验后还是建议使用控制台添加、更新类库这样很方便,由于使用控制台需要知道类库的准确ID,可以到http://www.nuget.org/packages这里去查找,把自己常用的ID记录下方便以后使用

下一篇详细介绍下如何从零开始搭建自己的NuGet服务器及发布自己的类库到服务器

注:此文章属懒惰的肥兔原创,版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接:http://www.cnblogs.com/lzrabbit/archive/2012/04/30/2476255.html

若您觉得这篇文章还不错请点击下右下角的推荐,有了您的支持才能激发作者更大的写作热情,非常感谢。

如有问题,可以通过lzrabbit@126.com联系我。

 
 标签: NuGet

NuGet学习笔记(1) 初识NuGet及快速安装使用的更多相关文章

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

    关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录. 初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package M ...

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

    关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录. 初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package M ...

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

    来自:http://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477607.html 关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学 ...

  4. NuGet学习笔记1——初识NuGet及快速安装使用

    关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录. 初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package M ...

  5. [转]NuGet学习笔记(1) 初识NuGet及快速安装使用

    关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录. 初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package M ...

  6. NuGet学习笔记(2) 使用图形化界面打包自己的类库

    上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...

  7. NuGet学习笔记(转)

    NuGet学习笔记(1)——初识NuGet及快速安装使用 http://kb.cnblogs.com/page/143190/ 1. NuGet是什么? NuGet is a Visual Studi ...

  8. NuGet学习笔记

    NuGet学习笔记(1)——初识NuGet及快速安装使用 NuGet学习笔记(2)——使用图形化界面打包自己的类库 NuGet学习笔记(3)——搭建属于自己的NuGet服务器

  9. NuGet学习笔记(2)——使用图形化界面打包自己的类库

    上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...

随机推荐

  1. 【leetcode】Longest Valid Parentheses

    Longest Valid Parentheses Given a string containing just the characters '(' and ')', find the length ...

  2. nginx 原理&知识

    2015年6月4日 17:04:20 星期四 发现两个关于nginx原理的系列文章, 非常好 http://blog.sina.com.cn/s/blog_6d579ff40100wi7p.html ...

  3. Innodb锁机制:Next-Key Lock 浅谈

    数据库使用锁是为了支持更好的并发,提供数据的完整性和一致性.InnoDB是一个支持行锁的存储引擎,锁的类型有:共享锁(S).排他锁(X).意向共享(IS).意向排他(IX).为了提供更好的并发,Inn ...

  4. WIZnet官方网盘

    之前使用过 WIZnet 的TCP/IP 解决方案,资源较少, 偶然发现此网盘,不敢独享,访问 请戳此处.

  5. [android]如何使LinearLayout布局从右向左水平排列,而不是从左向右排列

    方法1: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:l ...

  6. 数据结构-链表逆置(c++模板类实现)

    链表结点类模板定义: template <class T> class SingleList; template <class T> class Node { private: ...

  7. 【leetcode】Merge Intervals(hard)

    Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...

  8. iOS开发MAC下配置Svn和Git

    如果你对iOS开发中的版本控制还不了解那么你可以先看看这篇(大致看一遍就ok) http://www.cnblogs.com/iCocos/p/4767692.html   关于版本控制使用起来并不难 ...

  9. [Android Pro] root用户删除文件提示:Operation not permitted

    reference to : http://blog.csdn.net/evanbai/article/details/6187578 一些文件看上去可能一切正常,但当您尝试删除的时候,居然也会报错, ...

  10. openURL的使用方法:

    openURL的使用方法: view plaincopy toclipboardprint?        [[UIApplication sharedApplication] openURL:[NS ...