Не удается отправить приложение dotnet 3.0.100 в Octopus из DevOps Azure - PullRequest
1 голос
/ 25 октября 2019

Я использую конвейер 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 с Octopusразвернуть? Одним из вариантов может быть установка расширения octo для dotnet, но я не уверен, как вы это сделаете из лазурного конвейера. Или использовать сборку 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 ]

2 голосов
/ 25 октября 2019

Внимательно изучив логи, я обнаружил, что OctopusPush не работает, потому что это зависит от dotnet 2.0.0. Я добавил задачу yml для установки этой платформы, и теперь она выдвигается к осьминогу.

Возможно, будет лучше использовать инструмент dotnet octo, как описано TrevorBrooks, однако я не знаю, как установитьРасширения dotnet в конвейере DevOps.

0 голосов
/ 25 октября 2019

Использование dotnet octo https://octopus.com/blog/octopus-and-netcore

В статье блога подробно объясняется, как сделать эту работу.

Для конвейеров Azure следуйте этой статье: https://octopus.com/docs/packaging-applications/build-servers/tfs-azure-devops/using-octopus-extension

Помните

Для задач расширения Dev Azure Azure требуется, чтобы Octo был доступен по пути при выполнении на агенте сборки, и на нем должна быть установлена ​​среда выполнения .net core 2.0.0 или новее. Это не всегда возможно, например, для размещенных агентов Azure DevOps. Для этого все задачи Octopus будут автоматически пытаться загрузить и использовать последнюю версию инструментов Octo, если они не доступны в агенте сборки, как указано выше. Если вы хотите избежать каких-либо дополнительных загрузок или использовать конкретную версию Octo, вы можете добавить задачу Octo Installer в начало определения вашей сборки. Не будет предпринято никаких попыток загрузить Octo, если в вашем агенте сборки обнаружена такая возможность.

...