Можете ли вы перезапустить приложение, когда обнаружите, что вам нужно переключать файлы? Если это так, это просто вопрос переключения файлов и перезапуска. Теперь хитрый бит равен , если .NET сохраняет файл app.config открытым во время работы программы. Я подозреваю, что это не так, но если наиболее очевидный подход не удался, я предлагаю вам второе приложение (cfgswitcher.exe), которое ожидает завершения процесса с идентификатором PID, указанным в командной строке, затем переключает файлы конфигурации и запускает оригинальный процесс. Тогда ваше приложение просто должно запустить cfgswitcher.exe (передавая свой собственный PID в качестве аргумента командной строки) и завершить работу.
Как я уже сказал, стоит сначала попробовать более очевидный подход.
РЕДАКТИРОВАТЬ: если вы не можете перезапустить приложение (или даже его часть в новом домене приложений), то различные аспекты app.config (привязки сборки и т. Д.) Не могут быть изменены. Если вас интересует только изменение ваших собственных разделов конфигурации, то я предлагаю вам сохранить их в отдельном файле конфигурации и перезагрузить их, когда вы захотите.