【问题标题】:Cannot push dotnet 3.0.100 app to Octopus from Azure DevOps无法将 dotnet 3.0.100 应用程序从 Azure DevOps 推送到 Octopus
【发布时间】:2019-10-25 13:01:39
【问题描述】:

我正在使用 DevOps 管道将我的 dotnet 构建推送到 Octopus 云实例。

在我将 dotnet SDK 3 安装程序添加到 devops 管道之前它运行良好

- task: UseDotNet@2
  displayName: 'Install .net core 3.0.100'
  inputs:
    packageType: sdk
    version: '3.0.100'
    installationPath: $(Agent.ToolsDirectory)/dotnet

我的 azure-pipelines.yml 的章鱼部分如下所示:

- task: OctoInstaller@4
  inputs:
    version: 'latest'

- task: OctopusPush@4
  inputs:
    OctoConnectedServiceName: 'XXX.octopus.app'
    Space: 'Spaces-1'
    Package: '$(Build.ArtifactStagingDirectory)/$(Build.DefinitionName).$(Build.BuildNumber).zip'
    Replace: 'false'

我尝试了所有我能想到的 OctoInstaller 组合,包括嵌入式和显式版本号。我不断收到@4 的此错误消息。

Failed to push package. The Octo command line tool is too old to run this task. Please use version 6.10.0 or newer, or downgrade the task to version 3.*.

使用 OctoInstall@3 我得到另一个错误:

Failed to push package. The process '/opt/hostedtoolcache/dotnet/dotnet' failed with exit code 150

有人可以在 Octopus deploy 中使用 dotnet 3 吗?一种选择 可能是为 dotnet 安装 octo 扩展,但我不确定如何 你会从天蓝色的管道中做到这一点。或者使用 Windows 版本 而不是 Ubuntu。

我还注意到构建步骤中的错误。

The specified framework 'Microsoft.NETCore.App', version '2.0.0' was not found.
  - The following frameworks were found:
      3.0.0 at [/opt/hostedtoolcache/dotnet/shared/Microsoft.NETCore.App]

这意味着章鱼必须尝试使用​​ dotnet 2 框架。

【问题讨论】:

    标签: .net-core azure-devops octopus-deploy .net-core-3.0


    【解决方案1】:

    仔细查看日志后,我发现 OctopusPush 失败了,因为它依赖于 dotnet 2.0.0。我添加了一个yml 任务来安装该框架,现在它推送到章鱼。

    使用 dotnet octo 工具可能更简洁,如 TrevorBrooks 所述,但我不知道如何在 DevOps 管道中安装 dotnet 扩展。

    【讨论】:

    • 非常感谢这里分享的这个解决方案。您可以接受此答案,因此其他 SO 用户可以直接参考此解决方案。
    【解决方案2】:

    使用dotnet octohttps://octopus.com/blog/octopus-and-netcore

    博客文章详细解释了如何进行这项工作。

    对于 Azure Pipelines,请关注这篇文章:https://octopus.com/docs/packaging-applications/build-servers/tfs-azure-devops/using-octopus-extension

    记住

    Azure DevOps 扩展任务要求 Octo 在 在构建代理上执行时的路径,并且必须具有 .net 核心 2.0.0 运行时或更新安装。这可能并不总是可能的,例如 使用 Azure DevOps 托管代理。为了完成这项工作,所有 Octopus 任务将自动尝试下载和使用 最新版本的 Octo 工具,除非它们在构建中可用 如上所述的代理。如果您想避免任何额外的 下载或使用特定的 Octo 版本,然后您可以通过添加 Octo Installer 任务到您的构建定义的开始。没有企图 如果在您的设备上检测到该功能,将下载 Octo 构建代理。

    【讨论】:

    • 这就是我在引用“安装 octo 扩展..”时所说的。你知道如何在 DevOps 管道中使用它吗?如果有,请提供详细信息。
    • 请使用 6.10.0 或更高版本,您尝试过吗?
    • 是的,我尝试过各种版本,包括 6.10.0。我通过在 OctopusPush 步骤之前添加安装 dotnet 2.0.0 的步骤来完成构建工作。
    猜你喜欢
    • 2021-05-13
    • 2021-11-16
    • 2011-07-30
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2018-12-12
    相关资源
    最近更新 更多