【发布时间】:2012-09-11 17:06:59
【问题描述】:
我一直在研究自托管 NuGet,很难理解如何设置它以及它如何帮助支持我们的开发过程。
有人对使用哪个、如何设置有任何建议吗?
还是我应该只使用托管服务?
【问题讨论】:
标签: nuget nuget-server
我一直在研究自托管 NuGet,很难理解如何设置它以及它如何帮助支持我们的开发过程。
有人对使用哪个、如何设置有任何建议吗?
还是我应该只使用托管服务?
【问题讨论】:
标签: nuget nuget-server
在查看了各种解决方案(自托管和托管服务)后,我们选择了ProGet。
ProGet 总结
ProGet 为企业版提供标准的“免费”许可和象征性许可费用(单年和永久)。我们目前使用标准的“免费”版本,没有真正的抱怨。您可以根据需要创建任意数量的提要、添加任意数量的用户等。(我们创建了“测试”、“暂存”和“生产”提要作为我们质量保证流程的一部分。)唯一真正的限制在免费版本中,无法过滤您希望包含在 ProGet 提要中的特定软件包的外部提要。此过滤功能通过“连接器”进行管理。在企业版中——当你创建一个提要时——你可以选择添加一个“连接器”来从其他提要(外部或内部)中提取包。
使用 Nuget 包管理和创建的 ProGet
创建 nuget 包本身的步骤我将留给 David Ebbo 的热门博文 http://blog.davidebbo.com/2011/04/easy-way-to-publish-nuget-packages-with.html。但是,要知道上传包,您可以通过 ProGet 包管理 Web UI、command-line nuget.exe 或 Nuget Package Explorer 上传。
ProGet 安装、配置和激活
安装、配置和激活 ProGet 是最不直观的部分。它可以安装在常规 SQL Server 数据库或 SQL Server Express 数据库的支持下。此外,它还可以是自托管应用程序或在 IIS 下运行。如果您需要执行离线激活或想要请求不同的许可证密钥,请转到 my.inedo.com 并创建一个帐户,您可以从那里完成所有操作。
推进质量控制和 CI
带有 TeamCity 的 CI 是我们将需要的东西,因此我们正在考虑使用 TeamCity 的 Nuget 服务器创建一个 nuget 包构建过程。有一个如何创建我将在评论中发布的包的方法。下一步是自动将 TeamCity 创建的 nuget 包发布到适当的 ProGet 源(即“Testing”、“Staging”、“Production”),可能使用带有 API 密钥的命令行 Nuget。
更多信息
我们将 MyGet 视为一项托管服务,但它似乎在添加其他贡献者/用户等简单场景时出现问题。当需要两个以上的贡献者帐户时,它的价格也大幅上涨。而使用 ProGet,您只需免费版本即可获得无限的用户帐户。
另外一个说明:对于发布 OSS 类型的项目/包,我会看看 Chocolatey 作为解决方案。
【讨论】:
自托管的另一种选择是使用 NuGet.Server 包并创建一个 IIS 网站以将其托管在您的内部网络上,但如果您计划发布多个包,它的扩展性将不会很好。
我创建了一个 NuGet.Server 分支,它使用 Lucene.Net 索引来解决这些性能问题。可从https://github.com/themotleyfool/Klondike/releases 下载。
【讨论】:
为了使该线程保持最新状态,Visual Studio Team Services 还提供了预览版包管理器。查看市场:Package Management
【讨论】:
您可以创建一个空的 Asp.Net Web 应用程序并从 Nuget Gallery 安装 Nuget.Server。这是在 IIS 上自行托管自己的 Nuget 包的免费选项。检查documentation
【讨论】: