如何使用WIX删除卸载msi上的注册表项
我需要在用户卸载应用程序时删除注册表项。如何使用WIX删除卸载msi上的注册表项
这些注册表项位于HKEY_CURRENT_USER \ SOFTWARE中。
我正在使用WIX工具。
请注意,密钥没有在安装时注册,而是在基于用户执行的操作进行登录后注册。
在此先感谢
Windows Installer只能访问它运行的用户的注册表配置单元。在技术上可以编写一个自定义操作来枚举用户配置文件列表并加载每个ntuser.dat,但这最终会导致各种问题。简短的答案是不实际的。此外,微软标准规定在卸载时留下用户数据。
如果你真的想这样做,我知道的最好的方法是使用自定义操作在卸载过程中写入注册表(MSI不支持的东西)。让此注册表值设置一个ActiveSetup命令来调用reg.exe删除。然后,当每个用户下次登录时,密钥将被删除。
完全同意 - 加载每个用户配置单元是疯狂的,但我已经看到它完成。 HKCU是用户数据,不用理会。你可以为用户提供一个清理脚本,如果他们躁狂的话,但我只是将其作为知识库文章。最后一种方法是使用ActiveSetup“为每个用户运行一次”,这将清理HKCU,但是一旦忘记了它并安装新版本的软件,然后用户登录并拥有HKCU意外清理。如果您使用ActiveSetup,则必须在执行新安装时取消注册任何已注册的清理。 –
你检查了文件? http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/create_uninstall_shortcut.html –
@SimonPrice:检查无效。你有任何代码而不是给出模糊的建议吗? – vishal
我做的只是在家里的一台机器上,我会稍后再看看 –