приложение.config не сохраняет значения

мой App.Config что-то вроде:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <appSettings>
  <add key="foo" value=""/>
</appSettings>
</configuration>

Я пытаюсь сохранить foo значение, используя следующий метод:

private void SaveValue(string value) {
    var config =
        ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    config.AppSettings.Settings.Add("foo", value);
    config.Save(ConfigurationSaveMode.Modified); 
}

но это не меняет значения. и я не исключение. как это исправить? заранее спасибо!

3 ответов


при отладке с Visual Studio, вероятно,<yourexe>.vshost.exe.config изменяется вместо <yourexe>.exe.config. При построении приложения в режиме выпуска только <yourexe>.exe.config существует и будет обновляться.

ваш код также добавит дополнительный узел в файл конфигурации. Используйте что-то вроде кода ниже, чтобы обновить настройку:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["foo"].Value = "text";     
config.Save(ConfigurationSaveMode.Modified);

App.config копируется в выходную папку при сборке с именем <yourexe>.exe.config. Это фактический файл конфигурации, который загружается и сохраняется во время выполнения.

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


попробуйте сначала удалить старое значение и затем добавить его снова

 config.AppSettings.Settings.Remove("foo");
 config.AppSettings.Settings.Add("foo", value);
 config.Save(ConfigurationSaveMode.Modified);