如何在卸载时保留用户设置

Posted

技术标签:

【中文标题】如何在卸载时保留用户设置【英文标题】:How to keep user settings on uninstall 【发布时间】:2011-04-16 07:27:54 【问题描述】:

我正在使用.NET user settings 功能,但遇到了问题。

当应用程序被卸载然后重新安装时,用户设置会丢失。

我理解这是设计使然,我希望能够在安装程序中将选择权交给用户。

您能否给我一些对我有帮助的文章或文档的指示?

非常感谢

【问题讨论】:

【参考方案1】:

.NET 用户设置在卸载时不会被删除。实际上所有以前版本的软件的设置都保存在Local Settings目录中。

安装新版本时,会创建新版本的设置并使用默认设置。

为确保您的应用程序将新设置与以前的配置合并,您必须调用Settings.Default.Upgrade() 方法。

因此,如果我们不想保留这些设置,解决方案是手动删除卸载设置。因为我需要保留以前的设置,所以我现在要做的就是创建一个名为 UpgradeRequired 的新设置,true 具有默认值,然后在应用程序启动时添加此代码:

if (Properties.Settings.Default.UpdateRequired)

    Properties.Settings.Default.Upgrade();
    Properties.Settings.Default.UpdateRequired = false;

【讨论】:

【参考方案2】:

您可以将希望保存的设置写入注册表或将它们作为 XML 文件写入不受卸载影响的位置。

【讨论】:

您能否指点我解释如何为他们创建自定义持久性提供程序的文章? 我没有任何书签,但是通过谷歌快速搜索发现了这个java2s.com/Code/CSharp/Windows/Savevaluetoregistery.htm【参考方案3】:

如果您想继续使用用户设置,我建议您编写一个自定义安装程序类,并实现 onUninstalling 方法,转到 find the file 并将其复制到您的自定义安装程序的 onInstall 方法已知的另一个位置。以便下次安装程序运行时可以找到该文件。

【讨论】:

【参考方案4】:

我认为您不想在卸载后将数据实际保留在用户计算机上。留下文件是一种邪恶的做法,一个很大的禁忌。您应该在应用程序本身中公开一项功能,以便将这些设置导出到他们选择的位置,然后在重新安装应用程序后再次导入,或者将这些设置同步到服务器上,以便在重新安装时自动使用等。在卸载时,您不应留下任何痕迹。

【讨论】:

再次阅读我的问题:“我希望能够在安装程序中为用户提供选择”。我想给出选择。

以上是关于如何在卸载时保留用户设置的主要内容,如果未能解决你的问题,请参考以下文章

卸载 Windows 移动应用程序时,如何在设备上保留 SQL CE 数据库和现有数据?

如何在卸载过程中保留扩展名的文件夹/文件

卸载程序时如何设置密码?

如何彻底删除eclipse

ClickOnce 完成卸载

如何卸载intellij idea