Откройте другие файлы конфигурации программы

У меня есть программа A, у нее также есть файл app.config, где я добавил некоторые ключи, такие как адрес сервера, имя пользователя и пароль для подключения к серверу. Это консольное приложение. Теперь я хочу создать пользовательский интерфейс, который я сделал. В этом пользовательском интерфейсе я хочу изменить содержимое app.config программы A. Как мне это сделать?

Вот что я пробовал, я скопировал UI (в основном .exe) для программирования каталога A, где также находится app.config. Затем в пользовательском интерфейсе я использую метод OpenExeConfiguration класса ConfigurationManager и передаю имя файла A в качестве аргумента. Но он выбрасывает и исключает тип System.Configuration.ConfigurationErrorsException.

Поэтому я считаю, что мой подход неверен. Как мне это сделать?

EDIT: О, я забыл сказать, что использую С#,.NET 3.5 и VS 2008 (если это помогает: D)

Ответ 1

Я не уверен в проблеме с вашим подходом (попробуйте добавить трассировку стека к вашему сообщению), но так я это делаю:

var configMap = 
    new ExeConfigurationFileMap
    {
        ExeConfigFilename = externalConfigurationFile
    };
System.Configuration.Configuration externalConfiguration =
    ConfigurationManager.OpenMappedExeConfiguration(
        configMap,
        ConfigurationUserLevel.None);

foreach (var setting in externalConfiguration.AppSettings.Settings)
{
    ...
}

externalConfiguration.Save(ConfigurationSaveMode.Full);