自托管NuGet

自托管NuGet,nuget,nuget-server,Nuget,Nuget Server,我一直在关注自托管NuGet,很难理解如何设置它以及它如何帮助支持我们的开发过程 是否有人对使用哪一个、如何设置有任何建议 还是应该使用托管服务?在查看了各种解决方案(自托管和托管服务)后,我们选择了使用 项目摘要 ProGet为企业版提供标准的“免费”许可证和名义许可费(一年和永久)。我们目前使用标准的“免费”版本,没有真正的投诉。您可以创建任意数量的提要,添加任意数量的用户,等等。(我们创建了“测试”、“暂存”和“生产”提要,作为我们质量保证过程的一部分。)免费版本中唯一真正的限制是无法过滤

我一直在关注自托管NuGet,很难理解如何设置它以及它如何帮助支持我们的开发过程

是否有人对使用哪一个、如何设置有任何建议


还是应该使用托管服务?

在查看了各种解决方案(自托管和托管服务)后,我们选择了使用

项目摘要

ProGet为企业版提供标准的“免费”许可证和名义许可费(一年和永久)。我们目前使用标准的“免费”版本,没有真正的投诉。您可以创建任意数量的提要,添加任意数量的用户,等等。(我们创建了“测试”、“暂存”和“生产”提要,作为我们质量保证过程的一部分。)免费版本中唯一真正的限制是无法过滤外部提要,以获得您希望包含在ProGet提要中的特定包。此过滤功能由“连接器”管理。在企业版中——当您创建一个提要时——您可以选择添加一个“连接器”来从其他提要(外部或内部)拉入包

使用Nuget软件包管理和创建进行编程

创建nuget包本身的步骤我将留给David Ebbo的热门博客文章。但是,要知道,对于上载软件包,您可以通过ProGet软件包管理web UI或

程序安装、配置和激活

安装、配置和激活ProGet是最不直观的部分。它可以在常规SQL Server数据库或SQL Server Express数据库的支持下安装。此外,它还可以是自托管应用程序或在IIS下运行。如果您需要执行脱机激活或想要请求不同的许可证密钥,请转到并创建一个帐户,您可以从那里开始执行所有操作

项目质量控制和CI

我们将需要使用TeamCity的CI,因此我们正在考虑使用TeamCity的nuget服务器创建nuget包构建过程。我将在评论中发布创建包的方法。下一步将是自动将TeamCity创建的nuget包发布到适当的ProGet提要(即“测试”、“暂存”、“生产”),可能使用带有API键的命令行nuget

进一步信息

我们将MyGet视为托管服务,但它似乎在添加其他参与者/用户等简单场景中出错。当它需要两个以上的贡献者帐户时,它的价格也大幅上涨。而ProGet仅免费版本就可以获得无限的用户帐户


还有一个附带说明:对于发布OSS类型的项目/包,我将把它作为一个解决方案

自我托管的另一个选项是使用NuGet.Server包并创建一个IIS网站,将其托管在您的内部网络上,尽管如果您计划发布多个包,它的扩展性不会很好


我已经创建了一个NuGet.Server分支,它使用Lucene.Net索引来解决这些性能问题。可从下载。

为了使此线程保持最新,Visual Studio Team Services在预览中还提供了一个包管理器。查看市场:

您可以创建一个空的Asp.Net Web应用程序,并从Nuget Gallery安装
Nuget.Server
。这是一个在IIS上自托管自己的Nuget软件包的免费选项。检查

这里是指向“操作方法”的链接,正如承诺的那样:通常我们的安装/激活过程非常简单。只有当ProGet服务器未连接到internet时,才需要跳出工具进行激活,通常激活是自动的。我还要补充的是,企业版还增加了使用LDAP访问提要的功能,而无需手动记住或输入API密钥(当然,除非为提要明确指定了API密钥)。Tod向我发送了有关链接问题的消息,这些消息现在又能正常工作。感谢Tod和John。到目前为止,我们非常欣赏该工具的灵活性。知道你们对用户/客户的需求反应如此迅速也是非常令人鼓舞的。我们正在考虑在不久的将来购买一个企业许可证。我也尝试过ProGet,但它非常不可靠,我们有很多问题;随机不允许访问、忘记包、用很长时间来显示包,以及在不再扩展之前需要多少包?您上次测试的是哪个版本?您的分叉更改是否已重新合并到官方源代码树中?@ShaunWilson我可能上次使用NuGet.Server2.0进行测试,但从代码上看,它没有太大的更改。主要的扩展问题是包散列在进程中被缓存,因此当应用程序回收文件系统上的每个包时,必须全部读取以重新计算散列。由于类似的原因,搜索和列表操作也很慢。@ShaunWilson我在测试中发现NuGet.Server在大约100个中等大小的软件包中基本上不可用。我的fork没有被合并回上游,因为它有太多的更改。它现在是一个名为Klondike的独立项目,可在