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