Динамическое изменение файлов конфигурации в.Net Application в зависимости от среды через Bamboo
У меня есть служба Windows, написанная на.net C#. У нас есть три разные среды говорят dev
, test
а также prod
, У меня также есть 3 различных файла конфигурации для 3 сред, скажем devAppConfig
, TestAppConfig
а также ProdAppConfig
,
Ранее мы использовали для развертывания руководство, поэтому мы использовали для замены файлов конфигурации и развертывания двоичных файлов. Теперь развертывания должны быть автоматизированы для этого мы используем Bamboo.
Теперь мой вопрос заключается в том, как мне динамически изменить AppConfig для различных сред развертывания.
У меня есть 3 различных этапа в именовании бамбука DevDeploy
, TestDeploy
, ProdDeploy
, Когда я запускаю эти этапы, он должен изменить файл конфигурации и выполнить развертывание, но я не уверен, как это сделать.
Кто-нибудь может направить меня в правильном направлении для моей проблемы?
1 ответ
Я полагаю, это будет работать:
- Создайте несколько файлов конфигурации в некотором каталоге в решении в формате Config.ConfigurationName.xml, например, Config.DEV.xml, Config.Проверьте.xml...
- Добавьте событие PreBuild (в окне свойств csproj или вручную в файле csproj), например:
<PropertyGroup><PreBuildEvent>xcopy /y (ProjectDir)\Configs\Config.$(Configuration).xml $(ProjectDir)\CONFIG\Config.xml</PreBuildEvent></PropertyGroup>
или в VS Rigth нажмите на проект -> Свойства: - Добавьте несколько конфигураций в VS в Configuration Manager для другой конфигурации, например. DEV, Test. Конфигурация моего проекта:
- Выполнить в Bamboo msbuild с аргументами:
/p:SolutionConfiguration=%CONFIGURATION%
где%CONFIGURATION% - это переменная в Bamboo, в которой говорится о том, какой ENV вы развертываете, например, DEV, Test и т. д.