Развертывание веб-приложения Azure с использованием kudu ZipDeploy завершается неудачно из-за структуры ZIP - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь обновить процесс развертывания для сайта .NET Framework до веб-приложения Azure. Ранее мы использовали командлет Publish-AzureWebsiteProject PowerShell, но он постепенно прекращается. Поэтому мы пытаемся использовать функциональность kudu zipdeploy с помощью недавно выпущенного командлета Publish-AzWebApp PowerShell. Все прекрасно работает, когда файлы доставляются в Azure, но ужасно не удается распаковать ZIP-файл в нужное место.

Когда я создаю сайт, используя цель "Package" на нашем сервере сборки, он создает ZIP-файл, структурированный для использования с MSDeploy. Это не тот формат, который ожидается методом zipdeploy. ZIP-файл MSDeploy включает в себя XML-файл развертывания, а фактическое содержимое глубоко вложено в путь, представляющий исходное местоположение. Похоже, Zipdeploy хочет простой архив корня содержимого веб-сайта, поэтому он копирует файлы из архива в буквальный путь после извлечения.

Так, например, если мое решение Visual Studio находится в d:\builds\solution, тогда файлы сборки для упаковки помещаются в d:\builds\solution\project\obj\debug\Package\PackageTemp. Содержимое сайта попадает в ZIP по следующему пути D_C\builds\solution\project\obj\debug\Package\PackageTemp\Content. В результате при запуске zipdeploy содержимое помещается в веб-приложение по адресу wwwroot/Content/D_C/builds/solution/project/obj/debug/Package/PackageTemp/Content/.

Команда, которую я запускаю для создания проекта:

msbuild.exe /nologo /v:minimal /T:Package /p:Configuration="Debug;VisualStudioVersion=12.0" project.csproj

Я надеюсь, что кто-то знает, как мне этого добиться одним из следующих способов (преференциальный порядок):

  • аргумент msbuild для создания сайта и создания простого содержимого ZIP
  • параметр kudu, который будет развертывать текущий ZIP с использованием msdeploy вместо прямой копии
  • пользовательский сценарий развертывания kudu, который будет развертываться через msdeploy вместо копии файла
  • настройка цели msbuild, которая создаст совместимый ZIP

1 Ответ

0 голосов
/ 23 апреля 2019

Я понимаю, что вы пытаетесь использовать конвейер CI CD для развертывания веб-приложения в веб-приложениях Azure.

Ниже URL поможет вам в развертывании Zip

https://docs.microsoft.com/en-us/azure/app-service/deploy-zip

Примечание: MSBUILD Zip может работать не во всех моделях развертывания

Zip config MSBuild.exe / p: configuration = "release"; платформа = "любой процессор"; WebPublishMethod = Package; PackageFileName = "\ MyFolder \ package.zip"; DesktopBuildPackageLocation = "\ MyFolder \ package.zip"; PackageAsSingleFile = true; PackageLocation = "\ MyFolder \ package.zip"; DeployOnBuild = истина; DeployTarget = пакет

...