приложение.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);