通过MSI安装我的软件后,它将在HKLM中创建一些注册表项。当人们使用该软件时,他们的个人偏好会保存到HKCU。卸载该软件后,将删除HKLM和HKCU注册表项,但是我认为运行卸载的用户仅是HKCU项将被删除。这样对吗?如果是这样,如何确保删除了在同一计算机上使用过我的软件的其他人的HKCU子项?

更新:在我的案例中保存的“个人首选项”并不是用户选择的真正设置,而是应用程序在为该用户运行时存储的数据。因此,用户真正想要保留的并不是真正的数据。在卸载时删除它似乎是正确的,因为如果重新安装该应用程序将无用。因此,我想到目前为止最好的建议是Ed's: don't use the registry,尽管这并不能真正解决最初的问题。

最佳答案

简短的答案是你不知道。应该假定安装程序将删除它创建的条目,而不会删除其他任何条目。如果您的应用在运行时创建每个用户的设置,则这些设置不属于安装例程。

如果您确实确实想执行此操作,则可以创建一个自定义操作并强制以管理员身份运行卸载,以便您可以访问所有用户配置单元。警告-这是完全不规范的行为,可能会花费大量时间和系统资源来安装和卸载所有用户配置单元。而且,如果您的卸载程序不小心,可能会损坏系统级配置单元中的东西,并使系统无法启动。

正如我在sascha答复的评论中提到的那样,Windows Installer最佳实践说(说?)在卸载时保留自定义用户设置。这样,如果用户重新安装您的软件,则可以使用其设置。

关于windows-installer - 卸载软件时如何删除HKCU注册表项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2365508/

10-13 04:49