.net core 无法从Azure DevOps将dotnet 3.0.100应用程序推送到八达通

.net core 无法从Azure DevOps将dotnet 3.0.100应用程序推送到八达通,.net-core,azure-devops,octopus-deploy,.net-core-3.0,.net Core,Azure Devops,Octopus Deploy,.net Core 3.0,我正在使用DevOps管道将我的dotnet构建推送到一个八达通云实例 在我将dotnetsdk3安装程序添加到devops管道之前,它工作得很好 - task: UseDotNet@2 displayName: 'Install .net core 3.0.100' inputs: packageType: sdk version: '3.0.100' installationPath: $(Agent.ToolsDirectory)/dotnet my az

我正在使用DevOps管道将我的dotnet构建推送到一个八达通云实例

在我将dotnetsdk3安装程序添加到devops管道之前,它工作得很好

- task: UseDotNet@2
  displayName: 'Install .net core 3.0.100'
  inputs:
    packageType: sdk
    version: '3.0.100'
    installationPath: $(Agent.ToolsDirectory)/dotnet
my 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
有没有人能够将Dotnet3与八达通一起使用?一种选择 可能是为dotnet安装octo扩展,但我不确定如何安装 您可以从azure管道中执行此操作。或者使用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]

这意味着八达通必须尝试使用dotnet2框架。

使用
dotnetocto

这篇博客文章详细解释了如何实现这一点

对于Azure管道,请参阅本文:

记住

Azure DevOps扩展任务要求Octo在 在生成代理上执行时的路径,并且必须具有.net core 2.0.0 已安装运行时或更新版本。这可能并不总是可能的,例如 使用Azure DevOps托管代理。为了实现这一目标,所有 八达通任务将自动尝试下载并使用 最新版本的Octo工具,除非它们在构建中可用 如上所述的代理。如果你想避免任何额外的 下载或使用特定的Octo版本,然后您可以通过添加 Octo安装程序任务,以开始生成定义。不尝试 如果在您的计算机上检测到该功能,将下载Octo 构建代理


仔细查看日志后,我发现Octopush失败了,因为它依赖于Dotnet2.0.0。我添加了一个
yml
任务来安装这个框架,现在它推到了八达通


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

这就是我在“安装octo扩展…”一文中提到的。你知道如何在DevOps管道中使用它吗?如果是,请提供详细信息。请使用版本6.10.0或更高版本,您尝试过吗?是的,我尝试过各种版本,包括6.10.0。我通过在Octopush步骤之前添加一个步骤来安装Dotnet2.0.0,从而完成了构建工作。非常感谢在此处共享此解决方案。您可以接受此答案,以便其他用户可以直接参考此解决方案。