手把手教你用 Nuget 管理自己的项目库

什么是NuGet?

这里写图片描述

官网上的解释:NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers.

大致的意思:NuGet 是一种 Visual Studio 扩展工具,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。

可以去看一下NuGet 百度百科的介绍。

为什么用NuGet?

简单的说NuGet可以是我们的工作更方便,当我们的项目里要引用到的一些库时候,比如JQuery、Newtonsoft.Json、log4net等,我们需要从网上下载这些库,然后依次拷贝到各个项目中,当有的类库有更新时又不得不再重复一遍很是繁琐 ,这时就可以考虑使用NuGet来帮我们管理和更新这些类库,而且更新类库时会自动添加类库的相关引用,方便至极。

在我们做项目的过程中体会到NuGet最大的好处就是可以搭建自己的类库服务器,在开发1.0和2.0期间,我们是一个系统一个解决方案,当两个系统之间存在交互时,就需要引用另一个系统的Dll文件,如果没有NuGet的话,每一次Dll文件更新,就需要去拷贝一份,放到项目的文件夹下,在重新引用,过程显得非常的繁琐。并且在我们3.0的时候,再次对系统进行了细化,每一个系统的每一个模块一个解决方案,也就是业务颗粒化。可想而知,如果还用拷贝的方式的话,有种作死的节奏~~现在用了NuGet,世界开始变得不同了。

怎么使用NuGet?

STEP1 在NuGet官网上注册并获取API Key

首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key,这个过程很简单,我就不作说明了。

STEP2 下载NuGet.exe

使用之前,需要先下载NuGet.exe,下载链接:http://nuget.codeplex.com/downloads/get/669083为了方便使用,设置机器的PATH环境变量,将其NuGet.exe的路径添加到PATH变量中。我放在F:\Program files下,所以路径为F:\Program files。

STEP3 设置API Key

在官网上找到你的API Key
这里写图片描述

打开CMD,找到NuGet.exe的路径,并运行,然后输入下面的命令:

运行结果:

这里写图片描述

SETP4 开发自己的类库

然后打开AssemblyInfo.cs文件,将assembly的属性设置好,记得再设置一下AssemblyVersion特性,以指定我们类库的版本。目前使用1.0.0.0版本:

设置好后,编译整个项目待用。

STEP5 产生并修改nuspec

nuspec是NuGet将项目打包成nupkg的输入文件,可以通过nuget spec命令产生。在命令提示符下,进入NugetTest.csproj文件所在目录,然后执行:

运行结果:

这里写图片描述

用记事本打开NuGetTest.nuspec文件,注意里面的$xxx$宏,这些就是引用了AssemblyInfo.cs中的设置值,在编译产生package的时候,会使用AssemblyInfo.cs中的相应值进行替换。完成编辑后,我们的nuspec文件如下:

注意两点:1、$description$使用AssemblyDescriptionAttribute的值进行替换,在产生package之前,一定要记得先编译项目,否则会提示$description$找不到的错误;

STEP6 产生类库包(Library Package)

在NugetTest.csproj的路径下,使用下面的命令产生类库包:

运行结果:

这里写图片描述

STEP7 发布类库包

使用下面的命令:

运行时遇到点问题:

这里写图片描述

上面的这个问题,主要原因是因为API Key 一台电脑只能用一个。如果用第二个API Key在同一台电脑上发布另一个package的话就无法发布,就会报这个错。

下面是发布成功的内容:

这里写图片描述

STEP8 测试以及更新类库包

在解决方案中右键解决方案—-管理解决方案的NuGet程序包—-联机,输入自己的类库包名。安装就可以了。

然后是更新,更新的时候记得更改AssemblyInfo.cs中的版本号的信息,然后再重新运行一遍下面的cmd:

在打开测试程序,在更新中找到自己更新的包更新就可以了。

善于利用工具,提高我们的开发效率!

1 收藏 评论

关于作者:令仔很忙

简介还没来得及写 :) 个人主页 · 我的文章 · 1 ·    

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部