Динамическое изменение файлов конфигурации в.Net Application в зависимости от среды через Bamboo

У меня есть служба Windows, написанная на.net C#. У нас есть три разные среды говорят dev, test а также prod, У меня также есть 3 различных файла конфигурации для 3 сред, скажем devAppConfig, TestAppConfig а также ProdAppConfig,

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

Теперь мой вопрос заключается в том, как мне динамически изменить AppConfig для различных сред развертывания.

У меня есть 3 различных этапа в именовании бамбука DevDeploy, TestDeploy, ProdDeploy, Когда я запускаю эти этапы, он должен изменить файл конфигурации и выполнить развертывание, но я не уверен, как это сделать.

Кто-нибудь может направить меня в правильном направлении для моей проблемы?

1 ответ

Решение

Я полагаю, это будет работать:

  1. Создайте несколько файлов конфигурации в некотором каталоге в решении в формате Config.ConfigurationName.xml, например, Config.DEV.xml, Config.Проверьте.xml...
  2. Добавьте событие PreBuild (в окне свойств csproj или вручную в файле csproj), например: <PropertyGroup><PreBuildEvent>xcopy /y (ProjectDir)\Configs\Config.$(Configuration).xml $(ProjectDir)\CONFIG\Config.xml</PreBuildEvent></PropertyGroup>или в VS Rigth нажмите на проект -> Свойства:
  3. Добавьте несколько конфигураций в VS в Configuration Manager для другой конфигурации, например. DEV, Test. Конфигурация моего проекта:

Конфигурация моего проекта

  1. Выполнить в Bamboo msbuild с аргументами: /p:SolutionConfiguration=%CONFIGURATION% где%CONFIGURATION% - это переменная в Bamboo, в которой говорится о том, какой ENV вы развертываете, например, DEV, Test и т. д.
Другие вопросы по тегам