Nuget,程序员的功能包
导读:随着信息技术的发展,资源的共享已经成为一种文化。对于程序设计来说,我们在编写软件的时候,总有那么一些公共使用的东西,或者说需啊哟使用到别人可能已经做得很好的东西。这个时候,再去重写,并不是一个明智的选择。那么,全世界的程序员,怎么共享他们的成果呢?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 创建程序包。
Nuget pack Angel.csproj。成功后生成.nupkg文件,如我这里生成了Angel.1.0.0.0.nupkg。如:
三、怎样使用?
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,程序员的功能包的更多相关文章
- vim程序员加强功能
1.折叠 1.1折叠的方式有六种 manual:以标准的vim结构定义折叠跨越的范围,类似移动命令 indent:折叠与折叠的层次,对应于文本的缩排与 ...
- php程序员的弱点
今天在在知乎上看到一个问题,题目是<看了laravel的php框架怎么感觉很不靠谱?>,我最近也在想学习一下laravel,laravel听说是受到很大ruby on rails的影响. ...
- freecplus框架,Linux平台下C/C++程序员提高开发效率的利器
目录 一.freecplus框架简介 二.freecplus开源许可协议 三.freecplus框架内容 字符串操作 2.xml解析 3.日期时间 4.目录操作 5.文件操作 6.日志文件 7.参数文 ...
- 来自Java程序员的Python新手入门小结
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 程序员 vs HR(皮这么一下很开心)
最近网络上一段 HR VS 程序员 的表情包火了 来来来 我们近距离感受下 来源|网络:http://t.cn/RuTKC8B 哈哈哈!大家可以留言说说你们面试时候的趣事 更多内容关注公众号:51re ...
- 转一篇dudu大人的文章:程序员,用NuGet管理好你的包包
每个女人都有很多包包:其实男人也有,但只有会写程序的男人才有 —— 代码世界中的大“包”小“包”.这些大包小包,有花钱买的,有从开源市场淘的,也有自己或同事亲手制作的. 包包有个特点:容易坏,更新快, ...
- 程序员,用NuGet管理好你的包包(转)
每个女人都有很多包包:其实男人也有,但只有会写程序的男人才有 —— 代码世界中的大“包”小“包”.这些大包小包,有花钱买的,有从开源市场淘的,也有自己或同事亲手制作的. 包包有个特点:容易坏,更新快, ...
- Nuget程序包 使用log4net
Nuget程序包不用细介绍,网上资源很多,有个项目使用了log4net,为项目打log,功能很多,足够一般使用. 使用时候需要在配置文件中对其进行相关配置,我自己的配置文件放在App.config文件 ...
- ORM之PetaPoco错误--VS中NUGet程序包管理安装PetaPoco
一般在Vs中使用PetaPoco的时候都是使用NuGet程序包管理来安装PetaPoco的,如果你在安装PetaPoco前设置了ConnectionString,那么PetaPoco中的T4模板会自动 ...
随机推荐
- KEIL软件仿真死在等待外部晶振起振
这是由于是Debug里面的设置有问题 主要是下面2项设置 Dialog DLL默认是DCM3.DLL Parameter默认是-pCM3 应改为 Dialog DLL默认是DARMSTM.DLL Pa ...
- asp.net MVC 错误信息“没有为该对象定义无参数的构造函数”请求各位大神帮忙!
在做一个登录的功能,没有用MVC自己生成的identity代码,仿照别人的代码写出了以后出现错误. 错误信息如下: 代码如下: 求各位asp.net大神支招,网上找了资料最终也没解决这个问题.
- python绘图工具包 matplotlib 中文乱码问题
环境: python2.7 windows 8.1 解决: 改配置文件,把字体改为支持中文的字体. 找到python安装目录下的 \Lib\site-packages\matplotlib\mpl-d ...
- Cognos添加关联字段
(这是另一个表)
- vue同胞组件通讯解决方案(以下为一种另外可用vuex解决)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 入门Promise的用法
new Promise(function(resolve,reject){ resolve(); //数据处理完成 reject(); //数据处理出错 }).then(function A(){ / ...
- 关于 propertychange 兼容性问题
on 事件 $('body').on('property input','.class',function(){ alert(123); });
- HDU 5410 CRB and His Birthday (01背包,完全背包,混合)
题意:有n种商品,每种商品中有a个糖果,如果买这种商品就送多b个糖果,只有第一次买的时候才送.现在有m元,最多能买多少糖果? 思路:第一次买一种商品时有送糖果,对这一次进行一次01背包,也就是只能买一 ...
- Python 学习日志9月21日
9月21日 周四 今天是个特殊的日子吗,总感觉9月21这个日子听着怪怪的. 今天早晨看<Head First HTML and CSS>第13章节“表格和更多列表”,内容不多,看完并做了详 ...
- tomcat 虚拟目录配置
1.虚拟目录优点 原始 拷贝到webapps下,然后启动tomcat,就可以访问webapps下的项目.eclipse配置tomcat的原理也是这种方式. 虚拟目录 定位到eclipse工作目录下,实 ...