导读:随着信息技术的发展,资源的共享已经成为一种文化。对于程序设计来说,我们在编写软件的时候,总有那么一些公共使用的东西,或者说需啊哟使用到别人可能已经做得很好的东西。这个时候,再去重写,并不是一个明智的选择。那么,全世界的程序员,怎么共享他们的成果呢?Nuget!

一、是什么?

NuGet :是一种 Visual Studio 扩展,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。 NuGet 程序包是打包成一个文件的文件集,扩展名是 . nupkg,使用开放打包约定 (OPC) 格式。

二、从哪儿来?

2.1,Nuget的来源

可以说,任何东西都有一个从无到有的过程,那么,Nuget包也不是从软件事业开始就有的东西。为了介绍Nuget包的来历,下面举一个例子:

当我们想要引用别人写好的资源时,一般是什么流程?从我个人来说,是这样的一条生产线:

搜索资料——挑选资料——下载——解压——校验是否有用——放置到解决方案的合理位置——添加引用——配置文件,然后完成这一系列的工作后,当我们需要更新时怎么办?改代码——生成——引用——集成。如果你是一个特别精细的人,或者说时间特别多,脑袋特别够使,那么,这一系列的工作对你来说,可能还不是太过繁琐和复杂。可是,对于我来说,这就会严重影响到我的效率。

有没有一种办法,可以帮我快速的实现引用代码库和更新引用呢?Nuget,应运而生!

2.2,Nuget程序包的来源

我们可以从Nuget程序包中拿出东西来进行使用,那么,Nuget包里面的东西是怎么放进去的呢?

一般情况,创建自己的程序包,有以下几个步骤:

1,创建一个类库项目。

2,从项目生成 NuSpec 清单。

前提:下载一个NuGet.exe,并将它放到和.csproj文件在同一目录下.下载地址:http://nuget.codeplex.com/downloads/get/669083

如果要将自己的类库生成NuSpec清单,首先得注册Nuget账号。注册地址:https://www.nuget.org/ ,注册完成后,会获得一个APIKey。然后,使用VS2012开发人员命令提示设置Nuget
apikey:Nuget setAPIKey(此处输入注册后取得的APIKey)。注意:是在自己的项目路径下设置。

设置好了APIKey之后,紧接着输入命令:Nuget spec。然后会在项目的文件夹下,有一个新的文件产生:

到此,从项目生成 NuSpec 清单完成!

3,更新项目的程序集元数据。

打开nuspec文件,根据自己的需要,修改其中的某些值,如:版本信息,创建人等。没用的可以删掉.$$之间的可以不用管,会自动引用AssemblyInfo.cs中的设置值。

4,使用 NuGet.exe 创建程序包。

在命令提示符下,进入.csproj的文件目录,输入命令生成类库包,以我的为例,命令如下:

Nuget pack Angel.csproj。成功后生成.nupkg文件,如我这里生成了Angel.1.0.0.0.nupkg。如:

创建成功后,就是将其程序包发布推送。使用命令:nuget push Angel.1.0.0.0.nupkg。如:


最后,解决方案中,查看Nuget包管理,就可以看到自己刚刚创建好的Nuget包了。

三、怎样使用?

3.1,安装

使用Nuget包,首先需要确认已经安装上了Nuget包。如果已经安装了 ASP.NET MVC 3,则已经安装 NuGet。 ASP.NET MVC 3 包含 NuGet。如果没有,则需要进行:工具——扩展和更新——联机——Nuget packages manager——下载安装。

3.2,引用

当Nuget包安装好了之后,就是对他的引用:引用——管理Nuget程序包——搜索需要的程序包——下载安装——引用

以log4net为例:下载安装

当安装完成,则会在引用中出现:

3.3,更新

当我们引用的程序包邮新版本时,如果有必要更新,那么我们可以依照安装的步骤进行,当我们已经安装了程序包,再启动其对话框,就可以看见其更新标识,点击更新即可更新程序包。

四、总结

整体上看来,Nuget包就是一个打包封装和复用的过程,以前是一直都不明白这个Nuget包是怎么引用的,包括目前的项目中,就引用了上次大家做过的项目的一个类库,但是都不知道那是什么东西,为什么要引用,现在知道了。知识是一点一点涨的,多学点多见识点!

Nuget,程序员的功能包的更多相关文章

  1. vim程序员加强功能

    1.折叠      1.1折叠的方式有六种           manual:以标准的vim结构定义折叠跨越的范围,类似移动命令           indent:折叠与折叠的层次,对应于文本的缩排与 ...

  2. php程序员的弱点

    今天在在知乎上看到一个问题,题目是<看了laravel的php框架怎么感觉很不靠谱?>,我最近也在想学习一下laravel,laravel听说是受到很大ruby on rails的影响. ...

  3. freecplus框架,Linux平台下C/C++程序员提高开发效率的利器

    目录 一.freecplus框架简介 二.freecplus开源许可协议 三.freecplus框架内容 字符串操作 2.xml解析 3.日期时间 4.目录操作 5.文件操作 6.日志文件 7.参数文 ...

  4. 来自Java程序员的Python新手入门小结

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. 程序员 vs HR(皮这么一下很开心)

    最近网络上一段 HR VS 程序员 的表情包火了 来来来 我们近距离感受下 来源|网络:http://t.cn/RuTKC8B 哈哈哈!大家可以留言说说你们面试时候的趣事 更多内容关注公众号:51re ...

  6. 转一篇dudu大人的文章:程序员,用NuGet管理好你的包包

    每个女人都有很多包包:其实男人也有,但只有会写程序的男人才有 —— 代码世界中的大“包”小“包”.这些大包小包,有花钱买的,有从开源市场淘的,也有自己或同事亲手制作的. 包包有个特点:容易坏,更新快, ...

  7. 程序员,用NuGet管理好你的包包(转)

    每个女人都有很多包包:其实男人也有,但只有会写程序的男人才有 —— 代码世界中的大“包”小“包”.这些大包小包,有花钱买的,有从开源市场淘的,也有自己或同事亲手制作的. 包包有个特点:容易坏,更新快, ...

  8. Nuget程序包 使用log4net

    Nuget程序包不用细介绍,网上资源很多,有个项目使用了log4net,为项目打log,功能很多,足够一般使用. 使用时候需要在配置文件中对其进行相关配置,我自己的配置文件放在App.config文件 ...

  9. ORM之PetaPoco错误--VS中NUGet程序包管理安装PetaPoco

    一般在Vs中使用PetaPoco的时候都是使用NuGet程序包管理来安装PetaPoco的,如果你在安装PetaPoco前设置了ConnectionString,那么PetaPoco中的T4模板会自动 ...

随机推荐

  1. selenium处理的操作

  2. 141 Linked List Cycle 环形链表

    给定一个链表,判断链表中否有环.补充:你是否可以不用额外空间解决此题?详见:https://leetcode.com/problems/linked-list-cycle/description/ J ...

  3. Linux--NiaoGe-Service-01

    安装环境介绍 CentOS 6.9_x86_64 我们选择的是基本安装,也即“Basic Server”. 安装完成后重启来到(runlevel 3)纯文本界面. 例题 批量创建账号:假设有5个账号x ...

  4. 【转】grep 用法详解

    有时会使用到,但老忘,转到博客以便学习收藏 转自http://blog.csdn.net/tenfyguo/article/details/6387786 首先要记住的是: 正则表达式与通配符不一样, ...

  5. wp跳转到评价界面代码

    wp跳转到评价界面代码(仅适用于wp8.0) MarketplaceReviewTask marketplaceReviewTask = new MarketplaceReviewTask(); ma ...

  6. eggs

    Description: Erin买了不少鸡蛋,她发现一天吃不完这么多,于是决定把n个同样的鸡蛋放在m个同样的篮子里,允许有的篮子空着不放,请问共有多少种不同的放法呢? 注意:2,1,1和1,2,1 ...

  7. 计算1至n的k次方的和

    package com.ywx.count; import java.util.Scanner; /** * @author Vashon * date:20150410 * 题目:计算1至n的k次方 ...

  8. Linux OpenGL 实践篇-9 模型

    之前一直渲染箱子,显得有点单调.这一次我们绘制一个用艺术家事先用建模工具创建的模型. 本次实践参考:https://learnopengl-cn.github.io/03%20Model%20Load ...

  9. Zotero文献管理神器使用

    为什么使用Zotero管理论文? 1.可以从网上剪藏 2.可以查询 3.有作者 标题 期刊 索引 4.word自动生成论文索引 把pdf文件导入Zotero 按住ctrl+shift拖动pdf文件,就 ...

  10. Linux php安装zip扩展

    Linux php安装zip扩展 2018.07.22 22:40 1165浏览   #wget http://pecl.php.net/get/zip-1.12.4.tgz #tar zxfv zi ...