无法从Azure DevOps将dotnet 3.0.100应用程序推送到Octopus

时间:2019-10-25 13:01:39

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

我正在使用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
  

有人能够通过章鱼部署使用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框架。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

对于Azure管道,请遵循以下文章:https://octopus.com/docs/packaging-applications/build-servers/tfs-azure-devops/using-octopus-extension

记住

  

Azure DevOps扩展任务要求Octo可以在   在构建代理上执行时的路径,并且必须具有.net core 2.0.0   运行时或更新版本。可能并非总是这样,例如   与Azure DevOps托管代理。为了使这项工作,所有   章鱼任务将自动尝试下载并使用   最新版本的Octo工具,除非在构建中可用   上面指定的代理。如果您想避免任何额外的   下载或使用特定的Octo版本,则可以通过添加   Octo Installer任务到构建定义的开始。没有尝试   如果在您的设备上检测到该功能,将下载Octo   构建代理。