我有一个使用ConfigurationManager保存设置的c#应用程序,如下所示:
public static void SaveSetting(string key, string value)
{
var configurationFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configurationFile.AppSettings.Settings.Remove(key);
configurationFile.AppSettings.Settings.Add(key, value);
configurationFile.Save(ConfigurationSaveMode.Full);
ConfigurationManager.RefreshSection("appSettings");
}
从已编译的.exe运行,一切都很好 - application_name.exe.Config包含更新的设置。
用完VS2012后,ApplicationSet.vshost.exe.Config会被SaveSetting()正确保存。但是一旦我退出应用程序,application_name.vshost.exe.Config就会恢复到我启动应用程序之前的状态 - 即使时间戳显示它是旧版本的配置文件。
发生了什么事?
答案 0 :(得分:0)
vshost.exe.config仅供调试时使用。它的目的不是保持其值。一旦停止运行应用程序,它就会被exe.config文件替换。