导读:随着信息技术的发展,资源的共享已经成为一种文化。对于程序设计来说,我们在编写软件的时候,总有那么一些公共使用的东西,或者说需啊哟使用到别人可能已经做得很好的东西。这个时候,再去重写,并不是一个明智的选择。那么,全世界的程序员,怎么共享他们的成果呢?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. JAVA常用知识总结(三)——JAVA虚拟机

    先附一张JAVA虚拟机内存结构图: 其中JAVA虚拟机的线程问题<为什么JAVA虚拟机分为线程共享和非线程共享?>一文中已经有详细介绍,本文从面试中常问的一些JAVA虚拟机问题出发,主要从 ...

  2. java常用类要点总结

  3. PT2264解码心得

    PT2264解码心得 最近闲暇时间在琢磨无线RF解码程序,正好在数码之家论坛中翻出大佬的解码程序(http://bbs.mydigit.cn/read.php?tid=245739),于是乎,慢慢学习 ...

  4. Oracle历史版本及oracle相关软件下载地址

    网站:https://edelivery.oracle.com/ 可能需要注册个账号!!!(账号注册登录自己折腾下就好了) 下载数据库或者oracle的相关软件的话,如下 选择对应的下载即可!

  5. 06.NopCommerce配置邮箱账户

    NopCommerce如果配置让用户注册为通过邮箱注册,并且注册后激活邮箱才可登录,那么我们需要对NopCommerce的邮箱账户进行配置,用来发送邮件用.当然邮件还有很多其他用途,比如发送用户订阅的 ...

  6. [转]Linq 如何实现 in 与 not in

    本文转自:http://blog.csdn.net/zhangyumei/article/details/5620363 接触 LINQ 也有很长的一段时间了,有些在 SQL 语句中用的很顺手的东西在 ...

  7. vscode中将本地数据push至git repository

    1.新建repository 2.本地写好的代码 3.执行git init 初始化git配置文件 4.提交已暂存文件 5.填写提交信息 6.执行push命令 7.完成

  8. Java开发笔记(九十四)文件通道的性能优势

    前面介绍了字节缓存的一堆概念,可能有的朋友还来不及消化,虽然文件通道的用法比起传统I/O有所简化,可是平白多了个操控繁琐的字节缓存,分明比较传统I/O更加复杂了.尽管字节缓存享有缓存方面的性能优势,但 ...

  9. [BZOJ2705][SDOI2012]Longge的问题 数学

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2705 首先分析得题目所求$gcd(i,N)$的取值只可能是$N$的因子,则有$$Ans=\ ...

  10. 【学习笔记】后端中的MVC和前端MVVM的关系