从以前版本的app.config文件自动"升级"用户设置?

Sql*_*yan 26 .net vb.net app-config application-settings

每次我编译我的应用程序并且版本号更改(我有一个自动递增的内部版本号),我将丢失用户配置的app.config设置,因为它们存储在特定版本的AppData文件夹中.基本上,就用户设置而言,我的应用程序的每个版本都从头开始.

虽然这对开发来说是一个轻微的烦恼,但是当我接近部署/发布时它会引发一个问题 - 如果我使用app.config存储我的用户设置,那么每次安装修改版本的补丁时都会对用户的个性化设置进行管理我的应用号码?如果是这样,是否有一种简单的方法可以从以前的版本"升级"设置?我知道在注册表中使用HKCU是另一种选择,但我喜欢My.Settings命名空间的简易性,我想继续使用app.config.

另一个问题提出了类似的问题,但答案似乎并不那么明确.设置我的MSI是否会要求用户升级足以保留这些用户级设置?

Tim*_*ves 40

你看过ApplicationSettingsBase.Upgrade()吗?它允许使用以下调用从以前的版本升级设置:

My.Settings.Upgrade()
Run Code Online (Sandbox Code Playgroud)

  • 这正是我正在寻找的行为 - 它获取最新的设置副本并加载它们.另外值得注意的是ApplicationSettingsBase.GetPreviousVersion方法,您可以使用该方法从先前版本加载单个设置.谢谢! (5认同)

小智 7

不知道为什么,但升级命令或获取以前的版本似乎都不适合我.我能做错什么?我需要调用刷新命令吗?我在表单加载时这样做,它应该是一个应用程序事件吗?

UPDATE

找出原因,当您使用4位主要版本号时,它似乎不起作用.我使用2012年作为主要版本号.我把它改成了12,它就像一个魅力,虽然不是千禧年.我还需要88年才能开始担心这个问题!