tags:

views:

125

answers:

2

When I build an MSI in Visual Studio, I have the option of specifying required components (in this case, MSXML6), and if the component isn't installed then the installer would say that it was needed, and would open a browser to the download site for the component.

How can I implement this using Wix?

(Note that I don't necessarily want it to install the component, just exit the installation and go to the download page. I'm not trying to execute MSI from within MSI.)

A: 

Are you sure you want to exit the installation? We warn about missing required external components at install, then check at application startup & disable functions requiring them. Our unattended batch services do the same startup check and log an error if not found, then exit gracefully.

DaveE
I'm trying to get the Wix install package to function essentially the same as the VS installer, which did exit the installation and opened a browser to a URL specified in the MSI. So yes, I would like the MSI to exit if the comoponent isn't already installed.
Michael Bray
+3  A: 

OK I managed to figure this one out... after a lot of pain. See my blog post at CTICoder

Michael Bray
One of the key features of an MSI is its ability to run in silent mode. Opening web pages or doing any GUI operations like you describe is not a good idea for corporate deployment. The real solution is to wrap your dependencies in a setup.exe bootstrapper - Wix is adding support for this in future versions, for now you have to roll your own. The setup.exe installs any prerequisites and then kicks off the main install.
Glytzhkof
I've heard conflicting opinions on this... one guy on the wix-users list told me I should only put stuff like this in the NON-UI InstallExecuteSequence. What you are saying would imply that without having other means, it should only go in the InstallUISequence. And then there is the issue of 'redistribution' rights, which I'm unclear on with MSXML6. I'd rather have the user download the real MSXML6 package than pre-packaging it in my MSI.
Michael Bray