Исключить / Пропустить файлы в VSTS Построить и выпустить

Мы находимся в процессе создания архитектуры для VSTS CI/CD для развертывания нашего веб-приложения в наших службах приложений Azure. Мы хотим исключить файл web.config при его развертывании на сервере Azure, поскольку мы напрямую изменяем файл web.config в другой среде. CI Tasks выглядит так: CI Taks

Задача на компакт-диске: развертывание службы приложений Azure Мне известны другие способы обновления web.config https://docs.microsoft.com/en-us/vsts/build-release/tasks/transforms-variable-substitution, но в нашем В случае, если мы хотим пропустить файл web.config. Я не смог найти возможность пропустить файл во время выпуска в VSTS, как упоминалось в этой теме. Как мне исключить файлы.cs в артефакте из сборки CI vs-team-services? Есть ли способ исключить определенные файлы при сборке и развертывании релиза?

2 ответа

Добавлены -skip:objectName=filePath,absolutePath=web.config в дополнительных аргументах. Это пропускает обновление файла web.config во время развертывания.

Развертывание службы приложений Azure

Вы можете исключить web.config перед публикацией артефактов в определении сборки: скопируйте файлы веб-пакетов в каталог (например, $(build.binariesdirectory)), затем скопируйте файлы исключить web.config в другую папку (например, $(Build.ArtifactStagingDirectory)/package), и заархивируйте файлы в $(Build.ArtifactStagingDirectory)/package, И, наконец, опубликуйте zip-файл как артефакты сборки.

Подробности изменения в определении сборки, как показано ниже:

  1. Измените аргументы MSbuild как /p:OutDir="$(build.binariesdirectory)\\" в Visual Studio построить задачу.

  2. Добавьте задачу "Копировать файлы" после задачи Visual Studio Build. Настройки для этой задачи приведены ниже:

  3. Задача " Добавить архивные файлы" после задачи " Копировать файлы". И настройки, как показано ниже:

  4. Измените задачу " Опубликовать артефакты", как показано ниже:

Теперь артефакты сборки исключены web.config файл.

Дополнительные аргументы

- skip:objectName=filePath,absolutePath=\\Configuration\\AppSettings\\Base.config

Можете добавить

-skip:objectName=filePath,absolutePath='.*\PackageTmp\Web.config$'

в дополнительных аргументах в задаче VSTS развертывания "Развертывание веб-сайта / приложения IIS" это не приведет к развертыванию корневого файла web.config.