1
votes

Burn, the WiX bootstrapper application, when run, does a check to determine if it requires an uninstall. Say I have the following bundle Chain:

<ExePackage Permanent="yes" ...
<MsiPackage Visible="yes" DisplayInternalUI="yes" ...

How does burn determine whether or not it should present a dialog to uninstall itself? How does it know that it, the bootstrapper itself, is installed or not? After I run the bootstrapper and have installed the bundle, if I uninstall the MsiPackage from Programs and Features, and then run my bootstrapper again, it will show an Uninstall option...despite the fact that all non-permanent packages have been removed. Clearly, it must have left something behind to detect that just the bootstrapper was installed at some point.

1

1 Answers

1
votes

Got it, it checks for a registry key in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{The GUID for this Particular Installation} or in HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{The GUID for this Particular Installation}.

To find out what {The GUID for this Particular Installation} is for your bootstrapper, look for an element with a property of BundleUpgradeCode (REG_MULTI_SZ) that is equal to the upgrade code of your package.