基本上,问题是每次程序集版本更改(即用户安装应用程序的新版本)时,他们的所有设置都会重置为默认设置(或者更准确地说,在一个文件夹中创建一个新的user.config文件,该文件夹的名称为不同的版本号)
升级版本时如何保持相同的设置,因为似乎不鼓励使用ini文件或注册表?
当我们使用Clickonce时,它似乎能够处理这个问题,所以它似乎应该能够做到,但我不确定如何做到.
基本上,问题是每次程序集版本更改(即用户安装应用程序的新版本)时,他们的所有设置都会重置为默认设置(或者更准确地说,在一个文件夹中创建一个新的user.config文件,该文件夹的名称为不同的版本号)
升级版本时如何保持相同的设置,因为似乎不鼓励使用ini文件或注册表?
当我们使用Clickonce时,它似乎能够处理这个问题,所以它似乎应该能够做到,但我不确定如何做到.
ApplicationSettingsBase有一个method called Upgrade,可以从以前的版本迁移所有设置.
为了在发布应用程序的新版本时运行合并,可以在设置文件中定义一个默认为true的布尔标志.请说出UpgradeRequired或类似的名字.
然后,在应用程序启动时判断是否设置了标志,如果设置了,则呼叫Upgrade method,将标志设置为FALSE并保存您的配置.
if (Settings.Default.UpgradeRequired)
{
Settings.Default.Upgrade();
Settings.Default.UpgradeRequired = false;
Settings.Default.Save();
}
在MSDN阅读更多关于升级方法的信息.如果您需要进行一些自定义合并,GetPreviousVersion可能也值得一看.