Обновление значения в локальном app.config - PullRequest
1 голос
/ 01 сентября 2011

У меня есть exe, который читает некоторые значения из его локального app.config файла:

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

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

Я думал, что это сработало однажды, но сейчас я не вижу, чтобы app.config вообще обновлялось.

Ответы [ 3 ]

2 голосов
/ 02 сентября 2011

Глядя здесь: Как изменить время выполнения файла App.config с помощью 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 голосов
/ 01 сентября 2011

Я думаю, вы можете попробовать что-то вроде этого:

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

Я не уверен в том, что синтаксис для изменения значения конфигурации, но я сделал Add раньше, и я знаю, что вы можете сделать удалениепоэтому я думаю, что вы можете сделать комбинацию удаления и добавления, как это:

config.AppSettings.Settings.Remove("ThresholdDate");
config.AppSettings.Settings.Add("ThresholdDate", "2011-09-01");
0 голосов
/ 15 мая 2012
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

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

это будет работать только тогда, когда вы не находитесь в режиме отладки.попробуйте запустить код yung в /debug/appName.exe и вы увидите изменения в appName.exe.config

cheers!

...