Объедините несколько веб-проектов в один выходной пакет zip
Я использую Visual Studio Online и работаю над созданием системы непрерывной интеграции. Сценарий, который у меня есть, требует, чтобы несколько веб-проектов создавались для одного развертывания службы приложений Azure. Уловка заключается в том, что "из коробки" при создании новой сборки задача сборки Visual Studio создается для создания отдельного zip-файла для каждого проекта в решении, а затем задача развертывания службы приложений Azure выдает ошибку, сообщающую, что существует более одного файла, соответствующего шаблону, который является *.zip.
Я хотел бы собрать все эти проекты в одном месте, объединяя различные проекты, и тогда в Azure App Service Deploy есть только один zip-файл для отправки, который, как я знаю, вполне подойдет. Мои аргументы MSBuild для задачи сборки Visual Studio: /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
, Я пытался удалить PackageAsSingleFile
атрибут, но он все еще создал файлы zip.
Возможен ли сценарий, который я хочу сделать в VSO, возможно, с другим набором кодов команд?
1 ответ
Похоже, вам нужен сценарий PowerShell или несколько задач для манипулирования файлами и папками перед публикацией артефакта.
- Извлечь файлы
$(build.artifactstagingdirectory)\*.zip
в$(build.artifactstagingdirectory)\Merged
- Архивные файлы
$(build.artifactstagingdirectory)\Merged
в$(build.artifactstagingdirectory)\Merged.zip
- Удалить файлы, которые мы извлекли с помощью minimatch:
!/**/*.zip
- Измените развертывание службы приложений Azure для поиска:
$(System.DefaultWorkingDirectory)/**/Merged.zip
https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=vsts