当前位置:  开发笔记 > 编程语言 > 正文

如何在.net中的不同程序集版本中保留user.config设置?

如何解决《如何在.net中的不同程序集版本中保留user.config设置?》经验,为你挑选了1个好方法。

基本上问题是每次程序集版本更改(即用户安装新版本的应用程序)时,所有设置都会重置默认值(或者更准确地说,在具有不同版本的文件夹中创建新的user.config文件)号码作为名称)

升级版本时如何保持相同的设置,因为似乎不鼓励使用ini文件或注册表?

当我们使用Clickonce它似乎能够处理这个,所以它似乎应该能够完成,但我不知道如何.



1> Markus Olsso..:

ApplicationSettingsBase有一个名为Upgrade的方法,它可以迁移先前版本的所有设置.

为了在发布应用程序的新版本时运行合并,您可以在设置文件中定义默认为true的布尔标志.将其命名为UpgradeRequired或类似名称.

然后,在应用程序启动时,检查标志是否已设置,如果是,请调用Upgrade方法,将标志设置为false并保存配置.

if (Settings.Default.UpgradeRequired)
{
    Settings.Default.Upgrade();
    Settings.Default.UpgradeRequired = false;
    Settings.Default.Save();
}

阅读有关MSDN上升级方法的更多信息.如果您需要进行一些自定义合并,GetPreviousVersion可能也值得一看.


什么类型的设置应该**UpgradeRequired**?`appSettings`,`userSettings`或`applicationSettings`?作为Settings.Settings上的用户设置,一旦第一次将其更改为false,它将永远不再成立.新版本不会将**UpgradeRequired**重置为True.
@dialex必须是用户设置.Application类型的设置是只读的.新版本号会导致设置重置,因为设置存储在特定于版本的路径中.
我想我回答了自己的问题.如果存在以前版本的设置文件,则每次应用程序启动时它都会将其值复制到最新版本,可能不是您想要的!
推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有