How to build a minimal WiX installer UI without a license page?

I would simply use one of the already created WiX UI and override the sequence (make it higher so that it will override the previous setting): <Product> … <UI> <UIRef Id=”WixUI_InstallDir” /> <!– Skip license dialog –> <Publish Dialog=”WelcomeDlg” Control=”Next” Event=”NewDialog” Value=”InstallDirDlg” Order=”2″>1</Publish> <Publish Dialog=”InstallDirDlg” Control=”Back” Event=”NewDialog” Value=”WelcomeDlg” Order=”2″>1</Publish> </UI> <Property Id=”WIXUI_INSTALLDIR” Value=”INSTALLFOLDER” /> … … Read more

How to register file types/extensions with a WiX installer?

Unfortunately there’s no way to do a “safe” association with Windows Installer. We just write everything out to the registry and then have a separate component that takes over the system-wide default and is only installed if no other application has already registered itself as the default. With Vista there’s the new “default programs” interface, … Read more

MSI Reference Counting: Two products install the same MSIs

The first thing that comes to mind with this question is whether the products in question are decomposed the way they should be. As a general rule all MSI files think they own whatever they install, and they will uninstall everything attached to a component GUID inside the MSI on uninstall if the reference count … Read more

Reboot on install, Don’t reboot on uninstall

Restart Manager: The Restart Manager Feature of Windows (Installer) (middle page) is designed to help restart applications automatically during installation rather than requiring a reboot. This feature should always be used to try to eliminate reboot requirements. Only in very special circumstances should a reboot be really required. Technical Crash Course: This is a technical … Read more

WiX tricks and tips

Keep variables in a separate wxi include file. Enables re-use, variables are faster to find and (if needed) allows for easier manipulation by an external tool. Define Platform variables for x86 and x64 builds <!– Product name as you want it to appear in Add/Remove Programs–> <?if $(var.Platform) = x64 ?> <?define ProductName = “Product … Read more