Изменить конфигурационный файл на основе констант сборки - PullRequest
2 голосов
/ 24 сентября 2008

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

Прямо сейчас это означает, что нужно вручную отредактировать мой файл app.config, чтобы он указывал на соответствующие URL-адреса. Это не только хлопотно, но и может привести к человеческим ошибкам («К сожалению, я не удалил этот рабочий URL-адрес?» Может вызвать много проблем).

В небольшом числе мест в коде я использую

#if DEBUG
    // do something
#endif

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

Мне известны сценарии после сборки, но кажется, что может быть более простой способ, чем писать подпрограмму для разбора файла app.config XML каждый раз, когда я делаю сборку. Есть предложения?

Это для C # и .NET 3.5 и включает как старые "веб-ссылки", так и более новые ссылки на "веб-службы" WCF.

1 Ответ

3 голосов
/ 24 сентября 2008

Мы использовали программу под названием XmlPreprocessor из SourceForge, чтобы справиться с этим. Это позволяет вам создавать параметры в ваших файлах конфигурации и различных файлах значений для их заполнения.

Имеются следующие файлы:

app.config

...
<importantSetting>$importantSettingValue$</importantSetting>
...

qavalues.xml

...
<importantSettingValue>QAvalue</importantSettingValue>
...

prodvalues.xml

...
<importantSettingValue>PRODvalue</importantSettingValue>
...

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

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