如何在卸载时保留用户设置
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】:我认为您不想在卸载后将数据实际保留在用户计算机上。留下文件是一种邪恶的做法,一个很大的禁忌。您应该在应用程序本身中公开一项功能,以便将这些设置导出到他们选择的位置,然后在重新安装应用程序后再次导入,或者将这些设置同步到服务器上,以便在重新安装时自动使用等。在卸载时,您不应留下任何痕迹。
【讨论】:
再次阅读我的问题:“我希望能够在安装程序中为用户提供选择”。我想给出选择。以上是关于如何在卸载时保留用户设置的主要内容,如果未能解决你的问题,请参考以下文章