app.config没有保存值

我的App.Config是这样的:

       

我尝试使用以下方法保存foo值:

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

但这并没有改变它的价值。 而且我没有例外。 怎么解决这个问题? 提前致谢!

使用Visual Studio进行调试时,可能会修改.vshost.exe.config而不是.exe.config 。 在发布模式下构建应用程序时,只存在.exe.config并将更新。

您的代码还将在配置文件中添加一个额外的节点。 使用类似下面的代码来更新设置:

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

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

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

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

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