Для рабочей роли VSTS я пытаюсь создать преобразования конфигурации, чтобы можно было изменять настройки в зависимости от среды.
Я создал два файла в своем каталоге решений, App.dev.config и App.prod.config, которые я связал с тестовым проектом. Затем я использовал этот инструмент для применения преобразований конфигурации и создания файлов. .Debug.config и App.Release.config.
В обычном старом файле app.config моей рабочей роли я указываю, что настройки приложения обычно берутся из файла App.dev.config, поэтому он может либо остаться на месте, либо быть перезаписанным с помощью преобразования. <appSettings file="App.dev.config">
.
В моем файле App.Release.config у меня есть следующее преобразование, указывающее моим appSettings на чтение из моего производственного определения: <appSettings file="App.prod.config" xdt:Transform="SetAttributes(file)">
Мои махинации работают нормально, когда я переключаюсь между конфигурациями отладки и выпуска на моей локальной машине. Я успешно вижу распечатку переменных среды в зависимости от того, выбираю ли я «релиз» или «отладка». Однако, когда я выполняю развертывание в VSTS и указываю «выпуск» в моей переменной BuildConfiguration, файлы журнала говорят, что они выполняют преобразование, но если я смотрю файл конфигурации на удаленной машине, такого преобразования нет. произошло.
Как видите, они показывают, что какое-то преобразование удалось:
2018-05-01T19:58:08.9166019Z App_config_AfterCompile:
2018-05-01T19:58:08.9166379Z Преобразование исходного файла: App.config
2018-05-01T19:58:08.9311923Z Применение файла преобразования: приложение .Release.config
2018-05-01T19:58:08.9767602Z Выходной файл: obj\Release\DeviceCloud.Application.ReportWorker.exe.config
2018-05-01T19:58:09.0006922Z Преобразование выполнено успешно
Итак, я не уверен, почему в моем файле DeviceCloud.Application.ReportWorker.exe.config не применены преобразования.