преобразования app.config в Azure Devops для различных сред - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть проект .Net Framework 4.6.1, в котором создается служба Windows.Мы хотим, чтобы это было построено и развернуто конвейером Azure Devops.Мы успешно создали конвейеры для всех наших веб-служб .Net Core (используя переменную ASPNETCORE_ENVIRONMENT и набор параметров приложения. {ENV} .json файлы), но службы Windows, похоже, работают не так хорошо с точки зрения предоставления различныхконфигурация для разных сред.

У меня есть XDT-преобразования, работающие для XML-файла App.config.Я могу щелкнуть правой кнопкой мыши файлы в Visual Studio и «Преобразование предварительного просмотра», и оно отлично работает.

Что не ясно, так это то, как я перевожу это в конфигурацию конвейера.Кажется, задача Build способна выполнить преобразование, но тогда я не уверен, как у нас разные преобразования для разных этапов развертывания.Вместо этого происходит то, что все среды заканчиваются тем, что преобразование было применено к Конфигурации сборки, выбранной как часть шага Построения.

Я следил за многочисленными публикациями в блоге - включая эту ,в котором утверждается, что у вас может быть несколько конфигураций сборки, но для которых у меня, похоже, нет настройки.

Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 17 июля 2019

В дополнение к Ответ Райана Шлютера , вместо использования сторонней задачи токенизации, существует официальная задача преобразования файлов , которая отлично справляется с этой задачей.Задача недоступна как расширение;он должен быть собран из исходного кода и загружен на ваш сервер Azure DevOps вручную.У меня была небольшая проблема с этим (теперь решена), но это команды для запуска (из командной строки VS):

git clone https://github.com/microsoft/azure-pipelines-tasks.git
cd azure-pipelines-tasks
node make.js build test --task FileTransformV1
C:\Users\jason.payne\source\repos\external\azure-pipelines-tasks\_build\Tasks\FileTransformV1
tfx build tasks upload --task-path .\_build\Tasks\FileTransformV1 -u {URL}/{Collection} -t {PAT}

где {URL}, {Collection}и {PAT} должен быть заполнен в соответствии с вашими собственными данными.

Затем вы можете добавить эту задачу в конвейер выпуска вместе с нужными переменными согласно следующему тексту справки из задачи:

Переменные, определенные в конвейерах сборки или выпуска, будут сопоставляться с записями 'key' или 'name' в разделах appSettings, applicationSettings и connectionStrings любого файла конфигурации и parameters.xml.

Это решение устраняет необходимость иметь управляемые исходным кодом файлы преобразования, содержащие различные параметры среды, и вместо этого помещает их в конвейер выпуска вместо того, где они принадлежат.У вас просто есть база app.config с пустыми значениями или значениями по умолчанию, и вам не нужно изменять ее свойства действия по умолчанию для сборки.

0 голосов
/ 20 ноября 2018

То, что мы делаем с VSTS, что, как я полагаю, аналогично в новых Azure Devops.У нас есть преобразование добавления токенов в файл конфигурации IE "DefaultConnection": "Сервер = DBServer ; База данных = БД; ID пользователя = DBUser ; Пароль = DBPassword ;»Затем в среде релиза есть задача под названием Tokenization, которая вытягивает переменные, установленные из среды релиза, для замены подчеркнутых токенов.

Мы используем этот плагин для выполнения шага токенизации.https://marketplace.visualstudio.com/items?itemName=TotalALM.totalalm-tokenization

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...