2016-03-01 126 views
-1

我需要在用戶卸載應用程序時刪除註冊表項。如何使用WIX刪除卸載msi上的註冊表項

這些註冊表項位於HKEY_CURRENT_USER \ SOFTWARE中。

我正在使用WIX工具。

請注意,密鑰沒有在安裝時註冊,而是在基於用戶執行的操作進行登錄後註冊。

在此先感謝

+0

你檢查了文件? http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/create_uninstall_shortcut.html –

+0

@SimonPrice:檢查無效。你有任何代碼而不是給出模糊的建議嗎? – vishal

+0

我做的只是在家裏的一臺機器上,我會稍後再看看 –

回答

1

Windows Installer只能訪問它運行的用戶的註冊表配置單元。在技​​術上可以編寫一個自定義操作來枚舉用戶配置文件列表並加載每個ntuser.dat,但這最終會導致各種問題。簡短的答案是不實際的。此外,微軟標準規定在卸載時留下用戶數據。

如果你真的想這樣做,我知道的最好的方法是使用自定義操作在卸載過程中寫入註冊表(MSI不支持的東西)。讓此註冊表值設置一個ActiveSetup命令來調用reg.exe刪除。然後,當每個用戶下次登錄時,密鑰將被刪除。

+0

完全同意 - 加載每個用戶配置單元是瘋狂的,但我已經看到它完成。 HKCU是用戶數據,不用理會。你可以爲用戶提供一個清理腳本,如果他們躁狂的話,但我只是將其作爲知識庫文章。最後一種方法是使用ActiveSetup「爲每個用戶運行一次」,這將清理HKCU,但是一旦忘記了它並安裝新版本的軟件,然後用戶登錄並擁有HKCU意外清理。如果您使用ActiveSetup,則必須在執行新安裝時取消註冊任何已註冊的清理。 –