1

我最近安装了 Nuget Gallery ( https://github.com/NuGet/NuGetGallery ) 作为存储库。理想情况下,我想创建多个提要,以便我可以区分将在其他项目(dll、合同等)中重用的 nuget 包和我们用于将项目部署到生产环境的包。

我知道我可以通过创建 Nuget Gallery 的多个实例来实现这一点,但这在我看来有点过头了,这意味着两个网站两个数据库。我也熟悉 MyGet 提供此功能的事实,但我无法获得购买批准。我也知道 teamcity 包含自己的提要服务器,但它不允许这种多提要场景,其性能也不足以大规模使用。

简而言之,理想的部署方案如下:

  • teamcity 根据构建场景生成部署包或 dll/合约包。
  • teamcity 将部署包发布到 nuget 库部署源(例如:nugetgallery.server.com/deploy / api/v2)。
  • teamcity 将 dll/contract 包发布到 nuget Gallery 开发提要(例如:nugetgallery.server.com/dev/api/v2
  • 章鱼总是在nugetgallery.server.com/deploy /api/v2中搜索包
  • devs / teamcity 在nugetgallery.server.com/dev/api/v2中搜索包

这样我就可以保持干净,甚至可以创建第三种类型的提要,它只包含发布包,这样我就可以确定如果它不在那个提要上,任何东西都不会部署到生产中。

我可能错过了一些基本方法,因此欢迎使用我选择的替代方法。

4

2 回答 2

1

由于我找不到任何相关的东西,我最终放弃了,选择了两台服务器解决方案。我费了很大劲才找到任何关于 nuget 库真正具有哪些功能的文档。

现在我们有类似 deploy-nuget.server.com 和 dev-nuget.server.com,单独的 url、iis 实例和 sql 实例以及文件夹位置。

对于将来可能会研究此问题的人,可行的解决方案之一是根据用户创建私有存储库,不幸的是,在我的情况下这还不够,因为我还希望将包存储在不同的位置所以我们可以根据包的类型执行不同的备份策略。另一种选择是实际更改以分叉项目,但根据我以前的经验,这永远不会结束,因为您想要升级并且您的自定义更改必须以某种方式进行排序。

我知道这不是 nuget Gallery 背后的想法,因为您不应该删除包。但是我们确实有一些空间限制,所以最终我们将删除为 QA 环境创建的某些部署包,我们显然不再关心这些部署包。

于 2016-04-11T10:14:06.170 回答
1

你可以试试Proget。使用此服务器,您可以轻松管理多个 NuGet 源。它还提供支持所有功能的免费版本。

于 2017-02-11T10:27:42.697 回答