Публиковать только преобразованные файлы конфигурации из проекта ac # - PullRequest
0 голосов
/ 03 июня 2019

У нас есть решение C # ASP.MVC, созданное из множества отдельных проектов, которое поддерживает несколько конфигураций решения. Каждая конфигурация имеет место, поскольку для каждой среды требуются разные настройки, и при этом используется одна и та же база кода.

Настройки хранятся в нескольких .config файлах, а настройки среды применяются с использованием файлов преобразования.

Например, у нас есть Logging.config файл, расположенный в проекте Logging , в котором хранятся настройки Logger и соответствующие файлы преобразования. В Solution Explorer это выглядит примерно так:

  • Logging.config
    • Logging.Dev.config
    • Logging.UAT.config
    • Logging.Prod.config
    • и т.д ...

Мы создаем пакет сборки с помощью Azure DevOps Pipelines, однако мы вынуждены перестраивать проект несколько раз, даже если на кодовую базу это не влияет, поэтому мы ищем способ оптимизации процесса, который в идеале должен выглядеть примерно так:

  • Код сборки в режиме Release
  • Публикация конфигураций с настройками Dev
  • Публикация конфигураций, преобразованных с настройками UAT
  • Публикация конфигураций с настройками Prod
  • и т.д ....

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

Как этого достичь?

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Если вы используете DevOps Azure, у вас есть встроенная функция для преобразования.

В вашем конвейере выпуска, независимо от того, развертываете ли вы в своем локальном IIS (с задачей IIS Web App Deploy) или в Azure (с задачей Azure App Service Deploy), у вас есть «Параметр преобразования файлов и замены переменных», где вы можетепроверьте «преобразование XML».

enter image description here

Что означает эта опция?если у вас есть файл конфигурации с именем среды, например: *.UAT.config (и в выпуске для envrtiomnent с именем UAT), то DevOps Azure возьмет файл и преобразуется с помощью обычного файла конфигурации.

Итаку вас есть одна сборка, и в конвейере выпуска вы преобразуете файл конфигурации и развертываете приложение в своих средах.

0 голосов
/ 03 июня 2019

После создания проекта просто добавьте задачу в конвейер выпуска под названием Служба приложений Azure Deploy , где ваши преобразования будут выполняться автоматически, если вы выберете Преобразование XML в ФайлПараметры преобразования и замены переменных меню.
Обратите внимание, что преобразования конфигурации будут выполняться для *.EnvironmentName.config в файле *.config, поэтому все конфиги должны совпадать с именем среды.Например, если ваша среда называется test, тогда ваши конфиги должны быть *.test.config

Другой подход заключается в использовании задачи XDT Transform , которая предназначена для этого использования.В поле преобразований вы можете настроить свои преобразования следующим образом: Web.$(environment).config => web.config, где $ (environment) - ваша переменная, где вы задаете имя среды.

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