【发布时间】:2011-04-16 07:27:54
【问题描述】:
我正在使用.NET user settings 功能,但遇到了问题。
当应用程序被卸载然后重新安装时,用户设置会丢失。
我理解这是设计使然,我希望能够在安装程序中将选择权交给用户。
您能否给我一些对我有帮助的文章或文档的指示?
非常感谢
【问题讨论】:
我正在使用.NET user settings 功能,但遇到了问题。
当应用程序被卸载然后重新安装时,用户设置会丢失。
我理解这是设计使然,我希望能够在安装程序中将选择权交给用户。
您能否给我一些对我有帮助的文章或文档的指示?
非常感谢
【问题讨论】:
.NET 用户设置在卸载时不会被删除。实际上所有以前版本的软件的设置都保存在Local Settings目录中。
安装新版本时,会创建新版本的设置并使用默认设置。
为确保您的应用程序将新设置与以前的配置合并,您必须调用Settings.Default.Upgrade() 方法。
因此,如果我们不想保留这些设置,解决方案是手动删除卸载设置。因为我需要保留以前的设置,所以我现在要做的就是创建一个名为 UpgradeRequired 的新设置,true 具有默认值,然后在应用程序启动时添加此代码:
if (Properties.Settings.Default.UpdateRequired)
{
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpdateRequired = false;
}
【讨论】:
您可以将希望保存的设置写入注册表或将它们作为 XML 文件写入不受卸载影响的位置。
【讨论】:
如果您想继续使用用户设置,我建议您编写一个自定义安装程序类,并实现 onUninstalling 方法,转到 find the file 并将其复制到您的自定义安装程序的 onInstall 方法已知的另一个位置。以便下次安装程序运行时可以找到该文件。
【讨论】:
我认为您不想在卸载后将数据实际保留在用户计算机上。留下文件是一种邪恶的做法,一个很大的禁忌。您应该在应用程序本身中公开一项功能,以便将这些设置导出到他们选择的位置,然后在重新安装应用程序后再次导入,或者将这些设置同步到服务器上,以便在重新安装时自动使用等。在卸载时,您不应留下任何痕迹。
【讨论】: