我有一个从本地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
更新。
答案 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中进行更改
喝彩!