NuGet学习笔记(3)——搭建属于自己的NuGet服务器(转)
在上一篇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文件夹下即可)

注:
为了使程序可以发布到此站点上
在Web.Config中的apiKey节点的Value上,需要生成一个新的GUID,类似
<add key="apiKey" value="b2f53c91-7207-40f9-9c56-1b2c68cbd563" />
添加本地站点到包包数据源
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学习笔记(3)——搭建属于自己的NuGet服务器(转)的更多相关文章
- NuGet学习笔记3——搭建属于自己的NuGet服务器
文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...
- NuGet学习笔记(3) 搭建属于自己的NuGet服务器
文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...
- NuGet学习笔记
NuGet学习笔记(1)——初识NuGet及快速安装使用 NuGet学习笔记(2)——使用图形化界面打包自己的类库 NuGet学习笔记(3)——搭建属于自己的NuGet服务器
- NuGet学习笔记(2) 使用图形化界面打包自己的类库
上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...
- NuGet学习笔记(转)
NuGet学习笔记(1)——初识NuGet及快速安装使用 http://kb.cnblogs.com/page/143190/ 1. NuGet是什么? NuGet is a Visual Studi ...
- NuGet学习笔记(2)——使用图形化界面打包自己的类库
上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...
- NuGet学习笔记(2)——使用图形化界面打包自己的类库(转)
上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...
- 【转】NuGet学习笔记
关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录. 初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package M ...
- NuGet学习笔记(2) 使用图形化界面打包自己的类库[转]
http://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477607.html 上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet ...
随机推荐
- Docker的简单认知
Docker images: docker image是一个只读打模板,用来创建Docker 容器 Docker Registers 互联网上存储images的地方 Docker containers ...
- 前台传来的文件通过流stream转成bytes 再把文件写入数据库 类型是blob
//获取前台传来的文件 HttpFileCollection files = HttpContext.Current.Request.Files; Stream st = files[0].Input ...
- QQ在线联系代码
添加图文模块,标题地址:tencent://message/?uin=你的QQ号&Site=myqq&Menu=yes "你的QQ号"就写您自己的Q号 图片地址写: ...
- BootStrap-validator 使用记录(JAVA SpringMVC实现)
BootStrap 是一个强大的前面框架,它用优雅的方式解决了网页问题.最近正在使用其开发网站的表单验证,一点体会记录如下: 注:本文中借鉴了博客Franson 的文章<使用bootstrapv ...
- Oracle 获取表结构信息
通过Oracle中的user_tab_cols, user_col_comments, user_constraints, user_cons_columns表联合查询. user_tab_cols用 ...
- angular 指令梳理 —— checkBox
checkBox 持久化数据为 逗号分割 /** * 功能说明: * htCheckbox 指令用于收集checkbox数据. * 在页面中使用 * 属性指令:ht-checkbox * 对应的值为s ...
- java内部类实现多继承
class Example1 { public String name() { return "liutao"; } } class Example2 { public int a ...
- Java的一点内容(2)
1 面向对象的三个原则 封装性 封装的基本单元是类(class),类是一个抽象的逻辑结构,而类的对象是一个真实的物理实体:类的目的是封装复杂性,在类内部存在隐藏实现复杂性机制: 封装(encapsul ...
- php正则验证手机号码
protected function checkphone(){ if(preg_match("/^1[34578]\d{9}$/", $phone)){ return false ...
- 关于Repeater中绑定的控件不触发ItemCommand事件
今天遇到 在repeater 中使用一个button,点击button然后跳转另外一个页面. html. <asp:Repeater ID="repeater" runat= ...