一、概要
上期回顾:上篇博客我们说到了Dll文件的含义和作用,知道了它的可复用性强,灵活性高,耦合性低,可扩展性良好,使用资源较少等特点,同时我们也介绍了如何利用nuget来管理和使用我们需要的dll文件,可是也留下了一个问题,那就是何用Nuget管理我们自己的Dll文件。
本期要点:当我们需要用到自己写的dll文件时,可以直接右击-添加引用-浏览,然后找到相应的dll文件,添加即可。
可是这样问题也就出来了,如果我们多个人同时使用一个dll文件,那么我们对这个文件修改之后,如何保证所有的人都跟着改变了呢?难道要我们改一次,给所有的人重新发一次,然后他们每个人都重新引用一遍吗?
当然,这不不能说不是一个办法,可是我们的工作效率会大大降低。因此我们需要有一个工具来统一的管理我们的DLL文件,那么我们就说一下如何用nuget管理我们自己的dll文件。
二、发布
(假设此时我们已经开发好了一个类库.)
1.下载NuGet.exe
下载地址:点击打开链接。并将它放到和.csproj文件在同一目录下.这个是打包用的好工具,它可以将我们的工程文件打包.
2.注册
在NuGet官网注册一个账号,验证后可获得一个API Key.我们暂时管它叫my_api_key.注册地址:点击打开链接
3.设置API Key.
为防止出错建议使用 开始--VS2012--Visual Studio Tools--VS2012开发人员命令提示.
输入以下命令设置NuGet API Key: nuget setApiKey ‘my_api_key’ 例如:nuget setApiKey 979b13f9-a56d-4e50-bfaa-0aa8a0af3979
如图,先输入类库所在的系统盘符(g:),然后输入cd+.csproj文件所在目录(如上图第二句),最后输入:nuget
setApiKey ‘my_api_key’
4.修改AssemblyInfo.cs文件
设置咱们的AssemblyInfo.cs文件中的属性版本等,第一次就使用1.0.0.0吧.保存设置并编译整个项目.
5.生成.nuspec文件
在命令提示符下,进入.csproj文件所在目录,运行nuget spec 命令,将生成.nuspec文件,比如我这里生成了ITOO.Library.EFBase.nuspec.
6.修改.nuspec文件
打开刚才生成的.nuspec文件,如下图,去掉没用的东西(红框圈住的),然后其他项要与AssemblyInfo.cs文件中的一一对应。
修改完后为:
这里强调一下,以上信息必填,虽说这些信息可以直接从AssemblyInfo.cs文件中自动读过来,但是很多时候是读不过来的,所以需要手写,尤其是在重新发布的时候。
7.生成.nupkg文件
同样在命令提示符下,进入.csproj的文件目录,输入命令生成类库包,以我的为例,命令如下:Nuget pack ITOO.Library.EFBase.csproj。成功后生成.nupkg文件,如我这里生成了ITOO.Library.EFBase.1.0.0.0.nupkg
8.发布类库包
最后输入命令:nuget push ITOO.Library.EFBase.1.0.0.0.nupkg。会提示发布成功.
这样生成以后,我们就可以在nuget中搜索自己发布的dll,然后来选择引用了。由于上篇文章已经介绍过,所以不再多说
三、更新
如果我们的dll文件做了修改,需要重新发布的时候,我们就可以按照以上4-8的步骤走一遍,然后去nuget中搜索更新版本即可。如果出现问题,可以参考NuGet 发布类库,依赖项的问题
小编总结:至此,我们简单的了解了Dll文件,以及利用nuget来管理我们的dll文件。但是关于Dll动态链接库更加深入的知识我们都没涉及到,不过dll的确给我们带来了很大的便利,同时它也告诉了我们一种思想,面向对象的封装、抽象的思想,我们要把复杂的东西简单化,简单的东西打包成一个整体,这样我们在使用起来会非常的方便。由此看出,我们的学习不只只是学习,更重要的是思考如何学习,希望大家在之后的学习中能够认真的思考。