解决软件升级后user.config数据被还原的问题

上篇文章讲的是使用C#默认的设置功能,软件再打开后会自动新建一个user.config文件来存储数据。

但是会有很大概率遇到一个问题:当你更改了软件版本之后,再次打开软件,设置就变成默认的了,这是为何呢?

因为新版本和旧版本软件的配置文件并不在同一个目录下

解决这个问题很简单,利用C#自带的导入旧版本配置接口就可以了,我这里直接参考了stackoverflow上面的一个问题:How do you keep user.config settings across different assembly versions in .net?

直接在设置列表里新建一个值UpgradeRequired,默认为true

由于该设置项默认值为false时,所以我们只要检测到这个值为false,就尝试从旧版本读取配置,读完之后马上设置为true

//导入之前的配置文件
if (Properties.Settings.Default.UpgradeRequired)
{
    Properties.Settings.Default.Upgrade();
    Properties.Settings.Default.UpgradeRequired = false;
    Properties.Settings.Default.Save();
}

这样,就可以实现自动导入老版本软件的配置数据了

发表评论

您的电子邮箱地址不会被公开。