博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

学习笔记(3)——搭建属于自己的NuGet服务器

Posted on 2012-08-20 11:10  xgbzsc  阅读(197)  评论(1编辑  收藏  举报

 

摘要:文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库中讲解了如何打包自己的类库,接下来进行最重要的一步,从零开始搭建属于自己的NuGet服务器,诚然园子里及其它很多地方已经有完全写好的...

  文章导读

  创建NuGetServer Web站点

  发布站点到IIS

  添加本地站点到包包数据源

  在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重要的一步,从零开始搭建属于自己的NuGet服务器,诚然园子里及其它很多地方已经有完全写好的NuGet服务源码,我们只需要拿来发布一下就ok了,运行也很正常,但作为一名合格的程序猿,不建议这种拿来主义尤其时你自己可以搞定的时候,用别人写好的东西总有些心里不踏实,当有一天它出问题了你的悲剧就开始了,下面进入我们今天的主题

  创建NuGetServer Web站点

  1. 新建Web站点,选择 文件-->新建项目-->Asp.Net 空 Web应用程序

  2. 选择 工具-->Library Package Manager-->Package Manager Console 打开NuGet命令行控制台

  3. 在控制台输入Install-Package NuGet.Server (请保持Package source:官方源,即 Nuget offical package source,一般默认即为官方Package源)

  4. 回车确认后开始下载并安装NuGet.Server类库及相关引用,并自动添加引用到项目

  注:具体输出根据版本不同会略有不同

  自动添加的引用

  5. 在控制台输入 Get-Package 可以看到刚刚安装的类库

  6. 除添加类库引用外,还自动添加了一些文件(关于这些文件及其作用本文不做探讨,有兴趣的可以自行研究下,都很简单)

  /App_Readme/

  /App_Readme/Elmah.txt

  /DataServices/

  /DataServices/Packages.svc

  /DataServices/Routes.cs

  /Packages/

  /Packages/Readme.txt

  /Default.aspx

  /favicon.ico

  /packages.config

  同时Web.config也被修改,添加了一些配置项

  7. 至此NuGet.Server站点已经创建完毕,恩,你没有看错,就是这么简单,接下来部署到本地或IIS站点即可使用了

  发布站点到IIS

  1. 发布网站到本地

  2. IIS里面建立站点www.mynuget.com,主机头www.mynuget.com,应用程序池为.Net4.0集成模式,目录指向站点发布的目录

  3. 设置hosts 将www.mynuget.com执向本机

  4. 设置好hosts后,重新打开浏览器输入网址:http://www.mynuget.com/

  5. 查看已经发布的类库包 http://www.mynuget.com/nuget/Packages (可以把已经打好包的类库放到网站下的Packages文件夹下即可)

  添加本地站点到包包数据源

  1. 选择 工具-->Library Package Manager-->Package Manager Settings 

  2. 输入名称 MyNuGetServer及包包源地址 http://www.mynuget.com/nuget 点击Add完成源添加

  7. 查看刚刚添加的类库源 工具-->Library Package Manager-->Manager NuGet Packages for Solution... 点击刚添加的源MyNuGetServer可以看到我们放到站点下的类库包,选中需要的包包点击 Install完成安装

  8. 也可以在控制台下安装,将类库源执行我们建立的源 MyNuGetServer,控制台下输入Install-Package Winista.HtmlParser完成安装

  现在我们已经成功的搭建了自己的NuGet服务器。

  注意点:

  1. NuGet包包是放置在站点根目录下面的Packages文件夹下,如需要改变可以在配置文件packagesPath中进行设置,可以设置为相对目录或者物理目录

<appSettings>
<!-- Change the path to the packages folder. Default is ~/Packages. This can be a virtual or physical path. -->
<add key="packagesPath" value="" />
</appSettings> 

  2. 如何管理我们的包包,可以根据需要自行写个上传下载的文件管理功能,需要时上传到Packages文件下,不需要了删除即可,也可以像我一样写了个FTP服务,使用ftp上传下载

  3. 最好是为NuGet单独建立个站点这样管理着方便,若不方便建立独立站点可以随便找个现有的web站点,在里面安装NuGet.Server然后发布即可

  回头看整个过程:安装NuGet扩展,下载网上的类库包供自己使用打包自己的类库,搭建自己的NuGet服务器,整个流程基本走完了,剩下的就是我们如何去利用好NuGet这个强大的工具了。

  源文件下载:NuGet.rar