Ошибка при развертывании артефакта папки в службе приложений Azure

#azure-devops #msbuild #azure-pipelines-release-pipeline

#azure-devops #msbuild #azure-pipelines-release-pipeline

Вопрос:

Я использую Azure Dev Ops для запуска конвейеров сборки и выпуска. У меня есть сценарий сборки, который публикует мой веб-код в папке артефактов (с использованием проектов .NET SDK), и мне просто нужно вставить этот код в мою службу приложений Azure. Я попробовал задачи «Развертывание службы приложений Azure» и «Развертывание кода в службе приложений» в конвейере выпуска, предоставив ему файл настроек публикации из моего экземпляра Azure и указав на папку с моим кодом (поскольку в нем указано, что он принимает zip или папку).). Однако на консоли на этом шаге я получаю сообщение об ошибке «Такого метода развертывания не существует».

Мне удалось передать данные через FTP, но я хотел бы понять, почему публикация службы приложений не сработала, поскольку есть варианты (например, слоты развертывания), которые могут понадобиться в будущем. Является ли это сценарием, в котором использование подключения Azure Resource Manager будет работать лучше? Или мой артефакт сборки все-таки нужно заархивировать? Если его нужно заархивировать как веб-развертывание, есть ли шаг для этого после сборки решения, потому что сначала мне нужно скопировать файлы в папку артефакта для преобразований, поэтому я не могу просто выполнить полную веб-сборку / zip.

Комментарии:

1. Как насчет проблемы? Разрешил ли приведенный ниже ответ ваш вопрос? Если у вас есть какие-либо опасения, не стесняйтесь поделиться ими здесь.

2. @KenMcAndrew Можете ли вы проголосовать за мой ответ, если он был полезен для вас?

Ответ №1:

Я не вижу подробностей вашего конвейера, поэтому я бы поделился своими. Я развертываю zip-пакет:

введите описание изображения здесь

В Package or folder диалоговом окне у меня:

введите описание изображения здесь

Я использую YAML в своих конвейерах, но его легко понять и следовать, если вы хотите иметь аналогичные в классических конвейерах:

 trigger: none
pr: none

pool:
  vmImage: 'windows-latest'

variables:
  buildConfiguration: 'Release'
  projectDirectory: 'app-service-deployment-to-slot-with-previewhadar'

steps:
- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'
  workingDirectory: $(projectDirectory)

- task: DotNetCoreCLI@2
  displayName: Publish
  inputs:
    command: publish
    publishWebProjects: false
    projects: '$(projectDirectory)hadar.csproj'
    arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: true

- task: CopyFiles@2
  displayName: 'Copy configuration settings checks'
  inputs:
    contents: app-service-deployment-to-slot-with-previewscripts**
    targetFolder: '$(Build.ArtifactStagingDirectory)scripts'
    flattenFolders: true

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifacts'