Измените соответствующий файл конфигурации на основе переменной среды без многократной сборки приложения.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Измените соответствующий файл конфигурации на основе переменной среды без многократной сборки приложения.

Сообщение Anonymous »

У меня есть приложение для Windows, разработанное на C#, которое имеет 3 файла конфигурации, а именно dev.config, qa.config и prod.config.
В моем основном файле app.config я написал что-то вроде этого:


И когда мне приходится развертывать в другой среде, я редактирую файл app.config из двоичных файлов, меняю его на соответствующий файл конфигурации и развертываю его (скопируйте и вставьте двоичные файлы в виртуальной машине).
Чтобы автоматизировать это, я сначала добавил событие предварительной сборки, которое заменяет полный файл app.config соответствующим файлом среды с помощью xcopy, как указано в разделе этот ответ. Проблема в том, что мне пришлось собирать код 3 раза для развертывания в 3 разных средах.
MSBuild.exe "C:\test\TestProject.sln" /t:Rebuild /p:Configuration=dev
MSBuild.exe "C:\test\TestProject.sln" /t:Rebuild /p:Configuration=qa
MSBuild.exe "C:\test\TestProject.sln" /t:Rebuild /p:Configuration=prod

При этом создаются 3 двоичных файла отдельно в 3 разных папках dev, qa, prod в папке bin.Я также читал о медленном гепарде, который тоже делает нечто подобное. Мне приходится снова и снова собирать код для разных сред на основе Configuration Manager.
Я не знаю, возможно ли это, но мне нужно собирать только один раз и развертываю одни и те же двоичные файлы в разных средах. На сервере, где бы я ни развертывал, у меня будет установлена ​​переменная системной среды, например:
environmentType = dev or qa or prod

И где-то в коде я должен прочитать переменную среды
System.Environment.GetEnvironmentVariable("environmentType")
и сопоставьте его с соответствующим файлом конфигурации. Короче говоря, не должно быть какого-либо ручного вмешательства для изменения чего-либо или не следует выполнять сборку несколько раз.
Или есть ли способ прочитать переменную среды в app.config
Или есть ли способ прочитать переменную среды в app.config
code> и написать что-то вроде этого?
if env = "dev"

else if env ="qa"

else



Подробнее здесь: https://stackoverflow.com/questions/533 ... thout-buil
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»