gpt4 book ai didi

TeamCity NuGet 安装程序步骤问题

转载 作者:行者123 更新时间:2023-12-04 15:34:29 25 4
gpt4 key购买 nike

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

我有两个构建步骤:

  • NuGet 安装程序
  • MSBuild

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



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

    因此,在尽我所能找到解决方案中的任何错误之后,我尝试:
  • 禁用 NuGet 安装程序步骤
  • 运行我的构建 - 这显然失败了,因为它没有包(见下文)
  • 启用 NuGet 安装程序步骤
  • 重新运行构建

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

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

    然后它成功了.. 为什么?

    有没有人对我的问题有所了解?

    更多背景:

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

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

    是否是 MSBuild 步骤上的 NuGet 包还原与 Octopus 插件相结合导致了我的问题?

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

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

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

  • 并且构建运行良好。

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

    [已删除]无关信息

    最佳答案

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

    如果必须还原包,MSBuild 步骤将停止。在 MSBuild 运行之前执行还原阻止意味着它不必执行还原。此解决方案在 this .NET Framework Blog article 中讨论.

    Octopus Deploy 团队的回复是 here .

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

    关于TeamCity NuGet 安装程序步骤问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21777135/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com