WIX MSI Package Uninstallation

2019-05-02 22:47发布

问题:

I am using WIX for an installer package. When I uninstall the package by double clicking the original msi package everything is fine.

When I uninstall from the control panel it gives me a miminal UI uninstallation. I have written into my MSI a custom action which asks the user whether they want to uninstall some databases etc. This does not occur on the minimal UI uninstallation.

How can I make the uinstall from control panel work with a full UI?

回答1:

A reply by Bob Arnson in this thread:

Yes, that's the behavior of the Add/Remove Programs applet. It always uninstalls MSI packages in basic mode after prompting. The only thing you can do is set ARPNOREMOVE to force a user to use maintenance mode -- and surface a Remove option in your maintenance UI.



回答2:

You can't do that natively with MSI. You'd need to refer to a boostrapper/external UI to do the uninstall. The other answers to this question point in the right direction.



回答3:

Look at the registry key for your product in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. In there look at the Uninstall value and see if adjusting it does what you want.

I'm pretty sure that there is a property in the MSI for this if that fixes your issue I just can't remember it off the top of my head. Searching the MSI for the string you find in the registry should help you suss it out though.



回答4:

You can make ARP menu show only Remove/Change button(it opens your maintenance dialog) for your app by deleting 'ModifyPath' registry value under HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{YourProductCode}. And place both remove and change options in your maintenance dialog.

PS. For this method to apply make sure that you don't have any of the following registry values set to 1 under the registry key stated above: NoRepair, NoRemove, NoModify, WindowsInstaller.