I'm trying to customise the standard WiX Progress Dialog (I want to make it show the ActionData). I've followed Neil's guide to customising dialogs but the trouble is, the original ProgressDlg is still being shown instead of mine.
I think I know why: if you look at the source to ProgressDlg you can see this block of code:
<InstallUISequence>
<Show Dialog="ProgressDlg" Before="ExecuteAction" />
</InstallUISequence>
So rather than being published by another dialog, as most dialogs are, it is being triggered directly as part of the InstallUISequence. So how do I override this?
You can add custom dialogs to the UI sequence in a built-in WixUI dialog set. To do so, you must define a <UI/> element for your new dialog. Then, you must copy the contents of the <Fragment/> that includes the definition of the dialog set that you want to customize from the WiX source code to your project.
There are two ways to install WiX. The first way is to use the Windows installer, and the second way is to use the MSI package. To install WiX using the Windows installer, simply download the installer from the WiX website. Once you have downloaded the installer, run it and follow the prompts.
It seems that the progress dialog must be the last thing in the InstallUISequence before ExecuteAction - otherwise, because Progress Dialogs are modeless, it is shown then hidden straight away.
My solution therefore is just to make sure that my custom progress dialog is shown after the existing one:
<InstallUISequence>
<Show Dialog="CustomProgressDlg" After="ProgressDlg" />
</InstallUISequence>
@Samuel, it is working as Bob said: "As long as you don't reference ProgressDlg" but this statement is not precise. You need to find all references to ProgressDlg, but find them in the WiX sources. Then you need to create your own version of any dialog which references the ProgressDlg and is included by your setup (direct or indirect use of it!), in order to make it also reference your customized dialog.
I have tried this to solve the same issue. For using eg. the FeatureTree UI Sequence you would have to create your own versions of the following dialogs in addition to the ProgressDlg:
This is because they define a Show element which is referencing ProgressDlg.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With