上篇文章讲的是使用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();
}
这样,就可以实现自动导入老版本软件的配置数据了
转载保留版权:晨旭的博客 » 《解决软件升级后user.config数据被还原的问题》如果喜欢可以: 点击右侧上方的邮件订阅,订阅本站