app.config不保存值

时间:2012-01-12 19:13:16

标签: c# .net xml app-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 个答案:

答案 0 :(得分:28)

使用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);

答案 1 :(得分:3)

将App.config复制到构建的输出文件夹,名为<yourexe>.exe.config。这是在运行时加载和保存的实际配置文件。

查看输出文件夹,您可能会发现配置文件包含您的更改。

答案 2 :(得分:0)

首先尝试删除旧值,然后重新添加

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