更新本地app.config中的值

时间:2011-09-01 17:42:19

标签: c# app-config

我有一个从本地app.config文件读取一些值的exe:

TargetDate = ConfigurationManager.AppSettings.Get("ThresholdDate");

// and try to update with the current date
ConfigurationManager.AppSettings.Set("ThresholdDate", "2011-09-01");

我认为它有效,但我现在没有看到app.config更新。

3 个答案:

答案 0 :(得分:2)

我认为你可以尝试这样的事情:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
//change the config value
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

我不确定更改配置值的语法,但之前我已经完成了Add,我知道你可以删除所以我猜你可以组合删除和添加如下:< / p>

config.AppSettings.Settings.Remove("ThresholdDate");
config.AppSettings.Settings.Add("ThresholdDate", "2011-09-01");

答案 1 :(得分:2)

查看此处:How to change App.config file run time using C#就是答案 - 在visual studio IDE中运行时,您将看不到/bin/appname.exe.config中保留的值。你实际上必须进入bin目录并运行exe。

所以这段代码确实有效,只是没有处于调试模式:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

config.AppSettings.Settings["ThresholdDate"].Value = Convert.ToString(testdate);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

答案 2 :(得分:-1)

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

config.AppSettings.Settings["ThresholdDate"].Value = Convert.ToString(testdate);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

只有当你处于调试模式时,这才有效。尝试在/debug/appName.exe中运行yung代码,然后在appName.exe.config中进行更改

喝彩!