退出后,ConfigurationManager未在VS2012中保存

时间:2016-03-24 02:01:10

标签: c# visual-studio-2012 configurationmanager

我有一个使用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就会恢复到我启动应用程序之前的状态 - 即使时间戳显示它是旧版本的配置文件。

发生了什么事?

1 个答案:

答案 0 :(得分:0)

vshost.exe.config仅供调试时使用。它的目的不是保持其值。一旦停止运行应用程序,它就会被exe.config文件替换。