我正在使用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框架。
答案 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 构建代理。