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

时间:2009-07-29 05:33:01

标签: .net vb.net app-config application-settings

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

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

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

3 个答案:

答案 0 :(得分:40)

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

My.Settings.Upgrade()

答案 1 :(得分:7)

不确定原因,但升级命令或以前的版本似乎都不适用于我。我能做错什么?我需要调用刷新命令吗?我在表单加载时这样做,如果它是一个应用程序事件?

更新

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

答案 2 :(得分:1)

您是否考虑过ClickOnce部署?然后讨论该主题in depth。对于开发人员和用户来说,IMO,ClickOnce都更容易。