Как и вы, я также настроил 'multi' app.config - например, app.configDEV, app.configTEST, app.config.LOCAL. Я вижу некоторые из предложенных отличных альтернатив, но если вам нравится, как это работает для вас, я бы добавил следующее:
У меня есть
<appSettings>
<add key = "Env" value = "[Local] "/>
для каждого приложения я добавляю это в пользовательский интерфейс в заголовке:
from ConfigurationManager.AppSettings.Get ("Env");
Я просто переименую конфигурацию в ту, на которую нацеливаюсь (у меня есть проект с 8 приложениями с большим количеством настроек базы данных / wcf против 4 событий). Для развертывания с помощью clickonce в каждом я меняю 4 варианта в проекте и перехожу. (это я бы хотел автоматизировать)
Единственное, что мне нужно, - это помнить «очистить все» после изменения, так как старый конфиг «застрял» после ручного переименования. (Что, я думаю, решит проблему с настройкой.)
Я считаю, что это действительно хорошо работает (однажды у меня будет время взглянуть на MSBuild / NAnt)