代码改变世界

(转)介绍下Nuget在传统Asp.net项目中的使用

2012-09-05 17:16 JustRun 阅读(...) 评论(...) 编辑 收藏

转自http://www.cnblogs.com/n-pei/archive/2011/05/02/2034508.html

 

最近学了不少NuGet的东西,也看了很多它的视频,特别是在MIX11上的视频。

如果我们要在MIX11上评出一个明星的话,你可能会觉得是WP7,或者是SL5,那么你肯定错了,明星肯定是NuGet。因为几乎每个微软演讲的人员都在用NuGet。为什么它会这么受大家欢迎??很简单,它提高了大家做事情得效率,而且使用起来轻松,简单。

 

如果你去Google下nuget说明,你会发现结果如下:

image

基本上没都少文章,而且好多都是我写的那篇文章的转载,声明下,我不是臭美。。。就是觉得如果大家很多人有写它的使用,那么我就不用费劲再去写这些了。特别是很多人都是说明它如何在Asp.net MVC项目中的使用。其实在传统的Asp.net项目中同样好用。

  关于NuGet的基本介绍你可以按我上图给的搜索去找我写的文章,我就不给link了。

 

在进行练习之前,我们先创建一个空的asp.net解决方案,(不是MVC Smile)

 

 

1.添加第三方代码包的使用

传统的添加dll方式,就是下载,解压,然后找到需要添加到项目中的dll,接着添加引用,使用NuGet添加dll就比较简单,首先你可以去Nuget.org去查找是否有你要添加的第三方软件包,例如我们要添加elmah:

image

使用Package Manager Console来添加Elmah。

image

 

除了添加dll,我们也可以添加别的文件,例如我现在创建的是一个空的asp.net解决方案,那么在web工程中我想把jQuery添加进来,项目模板中自带的是1.4的,我想用1.5怎么办呢??直接使用Install-Package Elmah就行了

image

 

现在去写jquery的脚本,你发现没有智能提示,别急,可以使用 Install-Package jquery.vsdoc来安装最新的智能提示包。。

 

 

2.如何创建本地引用

创建本地引用比较简单了,例如,我们刚才已经添加了几个安装包,那么你可以在解决方案下看到一个Packages文件夹。本地引用我们就使用它吧。

点击下图所示按钮,进入Setting页面,

image

 

添加一个名字为LocalFeed的本地包源。路径指向上面所说的那个packages文件夹:

image

 

 

在Package Resource中找LocalFeed:

image

 

你可以把这个路径指向任何一个存放nuget 包的地方。。。。。

 

 

3.创建自己公司的NuGet Server.

上面那个方式是使用本地的资源包方式,那么如果是一个大的公司,或者说你公司会提供一个服务器来为你们存放内部的公用dll,传统的大家添加这些公用的dll方式就是从SVN或者其他源码管理工具上拿,也是需要先找到,然后去download,再添加引用进来。

如果有dll进行了更新,其他各个项目组都需要用新的dll,大家都得重复性的下载,添加引用,甚至还得删除掉原来的dll。。。。

这时候创建本地的nuget server就显得有必要了。

如何创建呢???????????????????

 

首先也是创建一个空的asp.net的项目:

image

 

说再安装下Nuget.Server这个包,在nuget官方提供的Feed上就有它。

image

 

安装好以后,在Packages文件夹下放几个nuget的包,然后访问default.aspx:

image

 

在Packages页面你可以看到包含的nuget包,nuget是OData形式的ATOM Feed。如下图:

image

 

 

按照第2点中介绍的把http://localhost:55326/nuget/添加到你的nuget源:

image

 

现在就可以把你们公司共用的dll打包成nuget的包,然后放到这个网站的Packages目录下了。

上面一直介绍NuGet的feed如何自己创建,那么公司内部如何打包nuget呢????

4.如何把代码打包成Nuget包

首先需要去codeplex上下载nuget command line:

image

 

这玩意可是打包利器啊,教大家两种打包方式:

a.直接通过工程文件打包dll:

创建一个类库,然后编译下。把刚才下载的nuget.exe拷贝到工程文件所在的文件夹中:

image

 

通过命令行来创建nuget包:

image

搞定了:

 

image

 

B:使用nuget的spec文件进行打包:

首先你得创建一个nuget的.spec文件:

image

 

在工程中编辑刚才创建的spec文件:

image

 

你可以编辑nuget包的信息,比如作者,版本等等。。。

image

 

另外你也可以在打包时创建两个文件夹,一个是content,一个是tools文件夹。

5.NuGet的高级应用(Scaffold的扩展)

这个部分会是结合powershell和t4模板来一起通过一个类来自动创建增删改查的例子。我准备把源代码放到codeplex上。

 

代码和介绍说明我下周在公司和大家分享nuget后,再把文章和代码已经ppt补上。。。。。。

 

如果你对NuGet感兴趣,可以关注下我,到时候可以随时看到文章更新。Smile