Wix, custom dialog when previous version exists

Next / Back Button Override: I am no GUI expert, in fact it is a neglected area (GUI is always suppressed for corporate deployment), but I believe something like this can work – redefining the Next and Back buttons – 3 dialogs involved:

<!-- 1. OldVersionDlg showing -->
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" 
         Value="OldVersionDlg">LicenseAccepted = "1" AND PREVIOUSVERSIONSINSTALLED</Publish>

<Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" 
         Value="OldVersionDlg">PREVIOUSVERSIONSINSTALLED</Publish>

<!-- 2. OldVersionDlg dialog not showing -->
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" 
         Value="SetupTypeDlg">LicenseAccepted = "1" AND NOT PREVIOUSVERSIONSINSTALLED</Publish>

<Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" 
         Value="LicenseAgreementDlg">NOT PREVIOUSVERSIONSINSTALLED</Publish>

Actual Dialog Sequences:

  1. LicenseAgreementDlg <-> OldVersionDlg <-> SetupTypeDlg

  2. LicenseAgreementDlg <-> SetupTypeDlg

To be sure, remember to test in all installation modes: install, upgrade, repair, modify, patching, uninstall (and there are stranger shores such as resumed installs – rarely seen).

In closing: is this feature really necessary? I find that features like these often cause more bugs than benefits, but that is just a personal opinion. In fact I wrote an answer a long time ago on how to implement such an upgrade check without using setup dialogs.


Some Links:

Leave a Comment