Fork me on GitHub

通过ProGet搭建一个内部的Nuget服务器

.NET Core项目完全使用Nuget 管理组件之间的依赖关系,Nuget已经成为.NET 生态系统中不可或缺的一个组件,从项目角度,将项目中各种组件的引用统统交给NuGet,添加组件/删除组件/以及更新组件即可一键完成,大大提升工作效率,减少不必要的引用报错。从运维角度,可在不影响老版本的情况下发布新版本,可统一管理公司各个项目中组件版本不一和各个版本组件的使用情况,减少故障发生以并使得项目稳定运行。

nuget.org 有个指南Hosting Packages Overview 告诉你如何自己搭一个nuget Server,社区还有下面的几个相关方案都可以实现自己搭建Nuget Server:

  • Nexus: 支持NuGet, 他也是可以免费使用的,对于要同时支持Maven等的可以考虑,对于纯粹的.NET支持上有点重
  • MyGet: 这是一个Nuget云服务,不适合企业内的私有部署
  • Self-hosted feeds: 小团队使用可以,很快你就会掉到坑里,一个很简陋的NuGet服务器很难以满足各方面的需求
  • ProGet,它和Nexus一样虽然是商业软件,支持nuget、npm、docker等,但它是.NET生态应用,而且还提供了免费版本,博客园也是用ProGet,具体参看dudu的文章《用ProGet搭建内部的NuGet服务器》

下面我们就来看看如何使用ProGet搭建一个内部的NuGet服务器,由于时间的关系dudu的安装方法已经不适用了,实质上ProGet分为绿色版和安装包两个版本,绿色版就是dudu上面所说的,而简单点的是直接安装包安装,跟着向导做就可以了,下面介绍下绿色版的安装:

1、 浏览器打开http://inedo.com/proget/versions 并下载最新的4.3.1 Manual Install版

proget43

2、 解压下载文件,得到3个文件夹:ProGet-Service 、ProGet-WebApp与ProGet-DbChangeScripter

3、 参考http://inedo.com/support/documentation/proget/installation/manual ,我们使用IIS来承载,需要安装数据库和IIS 站点。

4、 在IIS中创建一个站点指向ProGet-WebApp文件夹,应用程序池配置为经典模式(Classic)。[注:如果采用集成模式(Integrated),会出现HTTP Error 403.14 - Forbidden错误]。

5、 在SQL Server中创建一个名为ProGet的数据库,然后运行ProGet-DbChangeScripter文件夹中的bmdbupdate.exe程序。出现命令行菜单,输入update(进行update操作),接着输入数据库连接字符串回车,默认true,继续回车(进行数据库初始化操作),然后会进行数据库初始化操作。

progetupdatedb

6、 在完成数据库初始化操作之后,修改一下web.config中的数据库连接字符串,然后就可以正常访问自己搭建的ProGet站点。

7、 去ProGet的官网 my.inedo.com 注册一个帐户并获取免费版的License Key,登录进入自己搭建的ProGet站点,点击“Licensing and Activation”,输入之前得到的License Key进行激活。激活后就可以正常使用ProGet

8、 进入 Manage Default Feed ,修改一下Disk Path的值,设置为存放packages文件的物理路径。

除了用于存放自己的nuget packages,ProGet还可以通过connector连接到远程的nuget.org服务器,这样可以把ProGet站点作为nuget.org的缓存服务器。

posted @ 2016-09-26 18:40 张善友 阅读(...) 评论(...) 编辑 收藏