【问题标题】:Nuget Packages not available in TeamCityTeamCity 中不提供 Nuget 包
【发布时间】:2016-03-24 14:20:08
【问题描述】:
我们正在尝试使用 TeamCity 将 Octopus 用于 CD。我们已启用 OctoPack 来创建 Nuget 包以在部署期间使用。我们还在尝试构建库和使用集成的 Nuget 服务器。
我们能够成功地做到这两点。既部署到环境中,又使用 Nuget.Config 安装库包并在 TC 中恢复和构建。
昨天,CD 停止工作,正在构建包,但 Nuget 服务器无法访问它们。我们根据 TC 说明重置了元数据构建,但我们仍然没有在提要中获得新的包。我们确实确认这些软件包仍在构建中。
有什么想法吗?
【问题讨论】:
标签:
octopus-deploy
teamcity-9.0
nuget-server
【解决方案1】:
我会说,获得解决方案的起点取决于在 TC 中构建解决方案时 nuget 包的存储位置。
如果它们留在 TC Nuget 提要中,那么您需要查看 Nuget 商店中是否有超过 100 个包(TC 工件)。我们发现,一旦您超过 100 个包裹,当 Octopus 尝试从中提取时,100 个之后的包裹就不会出现在提要中。
如果您要推送到本地 Octopus Nuget 商店,也许要注意确保该服务器上的空间尚未填充到无法再推送它们的地步。
TC 中的构建日志应该会告诉您很多关于这些包在哪里以及如何被处理的信息。它们还应该在构建之后显示为构建工件,这将允许进一步验证它们至少正在构建。
【解决方案2】:
虽然可能不相关,但 TC 中的 Nuget 提要在构建完成后可能需要一段时间才能获取新包。特别是当您获得大量包裹时。如果之后立即启动 Octopus(通过链式构建),这可能会导致 Octopus 失败。
我发现最好的方法是将部署包直接推送到 Octopus 内部 nuget 存储,并在 TC 或其他 nuget 服务器中保持共享(在其他项目中引用)。 (注意,您不能使用 Octopus 作为 nuget 服务器来检索包)。推送是作为生成包的构建中的一个显式步骤完成的。