【问题标题】:TeamCity NuGet Installer step issueTeamCity NuGet 安装程序步骤问题
【发布时间】:2014-03-13 16:23:16
【问题描述】:

我正在 TeamCity 中构建一个启用 NuGet 包还原的项目。

我有两个构建步骤:

  • NuGet 安装程序
  • MSBuild

其中一个项目安装了来自官方提要的 log4net-package。 (但不要挂在哪个包裹上)

我的问题是当 TeamCity 运行第一步时,它在 nuget-installer 步骤中失败并显示以下消息: 找不到包“log4net”的“2.0.3”版本。

所以在尽力找出解决方案中的任何错误后,我尝试:

  1. 禁用 NuGet 安装程序步骤
  2. 运行我的构建 - 显然失败了,因为它没有包(见下文)
  3. 启用 NuGet 安装程序步骤
  4. 重新运行构建

[编辑] 关于 3. 步骤,正如 John H. 指出的那样,MSBuild 理想情况下应该能够重建包,所以我不需要 NuGet 安装程序步骤。当我尝试在没有 nuget 安装程序步骤的情况下构建解决方案时出现的错误与我安装的 OctoPack-package 有关:

OctoPack 无法运行,因为 NuGet 包在构建运行之前已恢复,并且目标文件在构建开始时不可用。请重新构建项目以在构建中包含这些包。您可能还需要确保您的构建服务器不会在每次构建之前删除包

那么它就成功了..为什么?

有人对我的问题有一些见解吗?

更多背景知识:

我认为这与章鱼部署包有关。我在 teamcity 服务器上安装了 octopus deploy 插件,并且在 MSBuild 步骤中勾选了 Run OctoPack 复选框。

我已尝试卸载 octopack 包并重新安装,但没有成功。

会不会是 MSBuild 步骤上的 NuGet 包还原与章鱼插件相结合导致了我的问题?

[部分解决] 我仍然不确定为什么我在 log4net-package 上收到错误。我运行 NuGet 安装程序作为自动构建的第一步,由于构建的性质,最终证明这是正确的做法。

我承认我不(总是)在更新包时阅读“新功能”。将 Octopack 从 2.0.26 升级到 3.0.19 时,其中一项更改是您不再需要签入 .octopack 文件夹。所以我真的能理解为什么构建在签入时找不到目标文件。

现在我已经:

  • 升级到 Octopack 3
  • 从版本控制中删除了 .octopack 文件夹
  • (再次)在 teamcity 中启用了 nuget 安装步骤

并且构建运行良好。

感谢大家的帮助!我现在是一个受过更好教育的人:)

[删除]无关信息

【问题讨论】:

  • “NuGet 安装程序”步骤的重点是明确恢复 MSBuild 步骤的包吗?如果配置正确,MSBuild 步骤应该能够在没有任何帮助的情况下恢复包。 MSBuild 步骤是否记录任何 NuGet 错误?
  • 嗨,约翰,感谢您指出这一点。当我禁用包还原步骤并运行失败的构建时,错误实际上与另一个包 OctoPack 有关。 “OctoPack 无法运行,因为 NuGet 包在构建运行之前已恢复,并且在构建开始时目标文件不可用。请重新构建项目以将这些包包含在构建中。您可能还需要确保您的构建服务器不会在每次构建之前删除包”。我会调查的..
  • 我在这里使用 ContinuiCI 得到相同的结果,它为每个构建创建源文件夹的新副本。如果我没看错,这意味着每次构建都会恢复包?
  • 我从 Octopack 3.0.19 恢复到 2.0.26,问题就消失了。我已经在这里向八达通报告了:help.octopusdeploy.com/discussions/problems/…
  • 嗨,肖恩,我也安装了 2.0.26,现在可以构建了。没有约翰指出的 NuGet 安装程序步骤。

标签: teamcity nuget octopus-deploy


【解决方案1】:

解决方案是在 MSBuild 运行的还原步骤之前运行 Nuget 还原。

如果必须恢复包,则 MSBuild 步骤会暂停。在 MSBuild 运行之前进行还原意味着它不必进行还原。此解决方案在this .NET Framework Blog article 中讨论。

Octopus Deploy 团队的回复是here

同样的问题可能会导致 TFS 失败 - 请参阅 RinoTom 的答案 here。我使用Continua CI,并在 MSBuild 步骤之前添加了一个命令行步骤来运行 Nuget 还原。

【讨论】:

    猜你喜欢
    • 2016-05-09
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2017-11-15
    • 2012-12-15
    • 1970-01-01
    相关资源
    最近更新 更多