How can i add a button to wix installer finish dialog box - wix

I am currently using WixUI_Minimal dialog set, So, just like optional text (CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT) can we add a button to the finish or exit dialog box on success scenario? I want to open a pdf file on the button click action.
Below is the code of how i am adding a custom text on finish dialog:
<UIRef Id="WixUI_Minimal" />
<CustomAction Id="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT" Property="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Thank you for installing [ProductName]."/>
<InstallUISequence>
<Custom Action="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT" After="FindRelatedProducts">NOT Installed</Custom>
</InstallUISequence>

You can have a look at this sample: https://github.com/glytzhkof/WiXOpenLogFile
It will show a check box that you can use to open the MSI log file. The MsiLogging property defined in the source file means that the log file will always be created. If you remove it the check box in the last dialog will be hidden (unless the log is still created by policy).
Here are a couple of other samples:
Custom Dialog Basics: https://github.com/glytzhkof/WiXCustomDialog - this sample shows the basic of customizing WiX dialogs. You base yourself off an existing WiX default dialog set and then extend it as necessary. This sample is very basic.
Experimental Dialog: https://github.com/glytzhkof/WiXViewLogExperiment - this little experiment uses a spawned dialog to show "something" at the end of the setup. Not too successful, but at least functional for testing and further experimentation. It is essentially an effort to prevent the update problems of normal MSI dialogs.
Links:
On WiX dialogs and MSI GUI
Injecting dialogs in WiX dialog sets

Related

Attempt to install earlier version of the installed application causes error

I have created a custom UI and provided the standard dialog boxes as required to avoid ICE20 errors. I have included the following line as required:
If I use a WIX UI this works fine. But now I've created my own custom UI I get an "unexpected error" message with error code 2814 and then one with 2869. Does anyone know how to catch the attempted downgrade to produce a dialog box with the correct message?
I am not an MSI dialog expert, but there are a few things I can point out:
You can customize the internal GUI built into an MSI.
You can also make your own GUI for Burn setup.exe launchers.
Burn GUIs can be more modern than the rather ancient MSI GUI.
A Burn launcher can hide the built-in MSI GUI during installation.
I am not sure what GUI you have customized?
Error 2814: The error code 2814: "On the dialog [2] the control [3] names a nonexistent control [4] as the next control." - this seems to indicate that a control on your dialog points to a non-existent control as the next one to go to for the TAB order of the dialog. You need to point to a valid control that exists and it should be visible too.
Custom MSI GUI: Making your own MSI GUI is rarely advisable unless you need something very specific and unusual. You can use existing dialog sets and just inject a new dialog (which might be what you have done). Due to the lack of flexibility for MSI dialogs I would recommend that you make a Burn setup.exe GUI if you really need a lot of flexibility. I have not looked at this a great deal.
WiX MSI Dialog Sample: There is a sample, modified WiX MSI dialog set here: https://github.com/glytzhkof/WiXCustomDialog
Links: I have a few links on MSI dialogs and Burn GUI. This is quite overlapping, please just skim and see what makes sense to you:
WIX Installer with modern look and feel
Changing text color to Wix dialogs
Wix default folder dialog
Removing Default dialogs from MSI
Other Links:
A very clever effort from Stefan Kruger to work around the MSI GUI dialog limitations: http://www.installsite.org/pages/en/msi/articles/MultiListBox/index.htm
Dynamically changing RTF content in the EndDialog after success
https://github.com/frederiksen/Classic-WiX-Burn-Theme
How to add image background to custom MSI dialog?

WiX Installer: How to hide/remove the Welcome dialog in WixUI_InstallDir mode

I am trying to remove the WelcomeDlg from the built-in WixUI_InstallDir dialog set.
For creating the setup executable and adding prerequisites , I used the bootstrap application where in I bundles the created msi. Now the issue is the bootstrap comes with its own Welcome dialog and the embedded msi also shows its own dialog box. In order to get rid of the msi welcome dialog, I
have removed the Publish statemnts related to Welcome dlg from the custom WixUI_InstallDir.wxs. But I am not able to get hide the welcome dialog.
Is there any way to get rid of the msi welcome dialog ?
Recently I also faced similar kind of situation where I need to exclude showing WelcomeDlg. Our idea was to create a custom license agreement dialog as the first dialog of the UI.
In order to achieve that behavior, following changes have been made.
Created a new wxs dialog with id "AdvancedWelcomeEulaDlgEx" which shows the EULA, checkbox to accept and Next button.
In this dialog's InstallUISequence, added the following line.
<InstallUISequence>
<Show Dialog="AdvancedWelcomeEulaDlgEx" Before="ProgressDlg">NOT Installed</Show>
</InstallUISequence>
Suppress the WelcomeDlg from showing. We used an approach like below in main UI fragment (Condition ensures that it won't show in normal case; In our case Installed and Patch case never happens as it is the way it handled)
<InstallUISequence>
<Show Dialog="WelcomeDlg" Before="AdvancedWelcomeEulaDlgEx" >Installed AND PATCH</Show>
</InstallUISequence>
You can check out this link which explains a similar kind of approach.
Basically the idea is to suppress the Welcome dialog and use the next dialog or custom dialog as initial one. Also, the Publish events of Next and other dialog's events should be rewired accordingly.

ErrorDlg with hyperlink

In the installer I'm building, the user must have a minimum of .NET 4.6.1 If they don't, I cancel the installation.
<PropertyRef Id="WIX_IS_NETFRAMEWORK_461_OR_LATER_INSTALLED" />
<Condition Message="This requires .NET Framework 4.6.1 or higher.">
<![CDATA[Installed OR WIX_IS_NETFRAMEWORK_461_OR_LATER_INSTALLED]]>
</Condition>
I want to add a hyperlink button to the .NET 4.6.1 download page from this error dialog. I can't figure out how to override the ErrorDlg and cannot simply add a new dialog because this page isn't part of the UI sequence.
This resource can give you a good idea of how to override ErrorDlg (search for installer uses the Error dialog on that page). Basically, here is the main quote:
Create a new source file and call it ErrorDlg.wxs. This file should
set a property called ErrorDialog to the value you've set the Dialog
element's Id. In addition, the Dialog element should set the
ErrorDialog attribute to yes.
There are also example snippets down in the text. As soon as you manage to create a custom dialog like this and inject it into the sequence correctly, inserting a new control should be quite trivial.

WiX - How to define only Feature tree UI

I've used the WixUI_FeatureTree dialog set but what I really need is a UI with the feature selection dialog, nothing else. WixUI dialog library contains the CustomizeDlg dialog which I understand to be the feature selection. I can't find any docs on using a single library dialog. Tried copying WixUI_FeatureTree.wxs fragment to my WXS and modifying it but I'm missing declaration or references (The Windows Installer XML variable !(wix.WixUICostingPopupOptOut) is unknown.). I'm using WiX v3.7 over VS2010.
Try to add the line
<UIRef Id="WixUI_Common" />
to the product element (best after </UI> ). this shold solve the ... variable ... is unknown error. then try to follow the "Changing the UI sequence of a built-in dialog set" example of this page: http://wix.sourceforge.net/manual-wix3/WixUI_customizations.htm

Wix: User Interface WixUI_FeatureTree add control to Welcome Dialog

I'm using WiX installer and WixUI_FeatureTree UI. I want to customize the Welcome Dialog window by adding one more text control. How can I do that? I search the documentation and didn't find anything
I that is not possible then can I change the height of the "Description" control? I tried like this but the Height was not changed?
<UI>
<Publish Dialog="WelcomeDlg" Control="Description" Property="Height" Value="150"></Publish>
</UI>
Adding a new control would require replacing the entire dialog and re-wiring the UI sequences to get your dialog to show up instead. You can read about that here: Customizing Built-in WixUI Dialog Sets.
If you just want to extend the contents of a control, WiX v3.6 has a new feature that allows .wxl files to not only change the text of a control but to change it's coordinates as well. Bob Arnson has a good article on that here: Localizing more than strings in WiX v3.6.