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

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

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

  • 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上面所说的,而简单点的是直接安装包安装,跟着向导作就能够了,下面介绍下绿色版的安装: docker

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

proget43

二、 解压下载文件,获得3个文件夹:ProGet-Service 、ProGet-WebApp与ProGet-DbChangeScripter npm

三、 参考http://inedo.com/support/documentation/proget/installation/manual ,咱们使用IIS来承载,须要安装数据库和IIS 站点。 浏览器

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

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

progetupdatedb

六、 在完成数据库初始化操做以后,修改一下web.config中的数据库链接字符串,而后就能够正常访问本身搭建的ProGet站点。 运维

七、 去ProGet的官网 my.inedo.com 注册一个账户并获取免费版的License Key,登陆进入本身搭建的ProGet站点,点击“Licensing and Activation”,输入以前获得的License Key进行激活。激活后就能够正常使用ProGet 命令行

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

除了用于存放本身的nuget packages,ProGet还能够经过connector链接到远程的nuget.org服务器,这样能够把ProGet站点做为nuget.org的缓存服务器。