【问题标题】:Teamcity + Octopus does not deploy correct exe fileTeamcity + Octopus 未部署正确的 exe 文件
【发布时间】:2016-10-25 20:23:09
【问题描述】:

我们有一个 teamcity 构建服务器,并使用 octopus 自动部署部署到 Windows 服务器。

程序的本地构建很好,但部署的 exe 没有反映更改。 我什至可以在 BitBucket 上看到提交的代码。

我使用 DotPeek 检查 exe 是否有更新的代码。 我不想手动部署它。

过去我们曾经遇到过这个问题。它曾经通过重新运行部署来修复。 我今天已经进行了 10 次这些部署,但仍然无法更改我的代码。

期望的行为是成功部署提交的代码。 有没有人遇到过类似的情况?

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及重现它所需的最短代码在问题本身。没有清晰的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example
  • 我添加了所需的行为。即使是文档/知识库也不支持这样的东西。这在过去发生在我们身上,是一次性事件。现在我无法在服务器上部署任何已提交的代码。
  • 你在部署 NuGet 吗?

标签: c# deployment teamcity octopus-deploy octopus


【解决方案1】:

当您从构建过程中自动创建章鱼版本时,它会自动从 nuget 提要中选择“最新”代码包。此处的最新意味着版本号不是日期。

例如,在某些时候,您可以将版本为 1.1.222 的包推送到 octopus,然后您更改了版本控制,现在拥有版本为 1.0.1.223、1.0.1.224 的包。在这种情况下,Octopus 将继续选择 1.1.222 作为最新版本,因为它的版本号更大。

所以。 1. 确保您的构建过程实际上增加了包版本。 1.1 检查您的软件包提要(它是内置的章鱼提要,请转到 Octopus 的库页面)并确保最新的软件包具有更新的版本。 2. 前往 Project> Releases > (release number) 查看 octopus 选择了哪个版本的包 3. 在你的构建过程中添加步骤to version .exe/.DLL files,这样你就可以在不反汇编的情况下查看版本(只打开文件属性)

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    您可以强制构建 Octopus 以使用特定版本进行发布和部署

    octo create-release  --releaseNumber=VALUE --deployto=VALUE
    

    这将使用特定的 releaseNumber 部署到您的目标环境,即使版本可能会更低

    【讨论】:

      猜你喜欢
      • 2014-01-23
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-09
      相关资源
      最近更新 更多