我一直在研究自助式托管NuGet,但很难理解如何设置它以及它如何帮助我们支持开发流程。
有没有人推荐使用哪个版本,如何设置?
或者我应该使用托管服务?
我一直在研究自助式托管NuGet,但很难理解如何设置它以及它如何帮助我们支持开发流程。
有没有人推荐使用哪个版本,如何设置?
或者我应该使用托管服务?
在各种自助托管和托管服务方案中,我们选择了ProGet。
ProGet概述
ProGet有标准的“免费”许可证以及企业版的名义许可费(单年和永久)。 我们目前使用标准的“免费”版本并没有什么实际的抱怨。您可以创建任意数量的feeds,添加任意数量的用户等。(我们创建了“测试”,“暂存”和“生产”feeds作为我们质量保证过程的一部分。) 免费版本唯一的限制是不能筛选外部feeds中特定包要加入到您的ProGet feeds中。 这个筛选功能由"connectors"来管理。通过企业版,在创建feed时,您可以选择添加一个“连接器”来从其他feeds(外部或内部)中拉取packages。
使用Nuget包管理和创建的ProGet
创建nuget包本身的步骤我将留给David Ebbo的热门博客文章:http://blog.davidebbo.com/2011/04/easy-way-to-publish-nuget-packages-with.html. 然而,知道上传包的方式,您可以通过ProGet packages管理网站界面,命令行nuget.exe或Nuget包浏览器上传。
ProGet的安装、配置和激活
安装、配置和激活ProGet是最不直观的部分。它可以使用常规SQL Server数据库或SQL Server Express数据库进行安装支持。此外,它也可以成为自托管应用程序或在IIS下运行。如果您需要执行离线激活或希望请求不同的许可证密钥,请转到my.inedo.com并创建一个账户,您可以在那里完成所有操作。
Proget质量控制和CI
我们将需要使用TeamCity进行CI,因此我们正在考虑使用TeamCity的Nuget服务器创建nuget软件包构建过程。有一个关于创建软件包的how-to我会在评论中发布。下一步将是使用API密钥,利用命令行Nuget将TeamCity创建的nuget软件包自动发布到适当的ProGet feeds(例如“测试”,“暂存”,“生产”)。
进一步信息
我们看了看MyGet作为托管服务,但似乎在添加其他贡献者/用户等简单场景时出现问题。当需要超过两个贡献者账户时,价格也会大幅上涨。而对于ProGet,即使只使用免费版本,您也可以获得无限的用户账户。
还有一个附注:对于发布OSS类型的项目/软件包,我建议查看Chocolatey作为解决方案。
自主托管的另一种选择是使用NuGet.Server包,并创建一个IIS网站来在内部网络上托管它,但如果您计划发布多个软件包,它的扩展性不会很好。
我创建了一个 NuGet.Server 的分支,使用 Lucene.Net 索引来解决这些性能问题。下载可从 https://github.com/themotleyfool/Klondike/releases 获取。
Nuget.Server
。这是一种免费选项,可以在IIS上自主托管自己的Nuget软件包。请查看文档。