Я использую VSTS для развертывания веб-приложений asp.net. Мы меняем способ развертывания преобразованных файлов web.config, так как мы обгорели во время недавнего производственного поста, когда файлы были неправильно преобразованы во время «Развертывания веб-приложения IIS. Наш новый план — использовать nuget CodeAssassin.ConfigTransform». task, и все наши преобразования конфигурации преобразуются как часть build. Они могут быть проверены/проверены нашими разработчиками локально и включены в артефакт сборки.
Итак, на мой вопрос: в основном в моем артефакте сборки, в корне моего веб-проекта, мы найдем преобразованные файлы web.config, например. web.dev.config.transformed, web.qa.config.transformed, web.dev.config.transformed и т. д.
В качестве нового шага в моем процессе выпуска для каждой среды я хочу скопировать правильный файл в своем артефакте до того, как задача «Развертывание веб-приложения IIS» отправит изменение на веб-сервер. На самом базовом уровне после всех замен переменных команда копирования будет выглядеть примерно так.
copy-item ?????web.dev.config.transformed -Destination ?????web.config
надо заменить????? с путем, по которому был извлечен мой артефакт, например.
C:\vstsagent\A1\_work\r1\a\temp_web_package_7996773376015784\Content\C_C\VSTS_agent\_work\6\s\My.Web.Project\obj\Release\Package\PackageTmp\
Я просмотрел каждую переменную сборки/выпуска (спасибо Джан Мария Создать дамп всех переменных среды во время сборки TFS/VSTS), и я не вижу ничего похожего на этот путь, к которому я могу получить доступ из переменной.
Я, очевидно, упускаю здесь что-то простое... так как эта информация доступна для других задач?
Любая помощь приветствуется!