Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WiX burn bootstrapping x86 and x64 msi's into single No-UI bootstrapper

I have x64 and x86 versions of my installer .msi, and want to ship a single executable which simply checks the machine architecture and runs the x86/x64 MSI. The MSIs are basically identical, they install the same AnyCPU files, which I bundle in a shared .cab file so as not to double the size of the installer.

So far I've tried WiX Burn, which pops up a GUI which I don't want (I just want to use the MSI GUI), and I tried disabling the burn GUI via /silent flag - this propagates this flag to the MSIs so it disables all GUI for MSIs (not what I want).

I think I am correct when I say there is no default No-GUI version of Burn bootstrapper, and to create one you must edit the source code yourself? This sounds like a massive missing feature?

I've also tried DotNetInstaller which has it's own set of problems with a confusing user interface. I've also tried setupbld which does not support MSIs with an external cab.

like image 251
Michael Parker Avatar asked Feb 01 '13 11:02

Michael Parker


2 Answers

For the architecture detection you could use the InstallCondition attribute in the MsiPackage element.

To put it simply try:

<MsiPackage SourceFile="..\Example\bin\Release\x86\example.msi" Compressed="no" InstallCondition="NOT VersionNT64" />
<MsiPackage SourceFile="..\Example\bin\Release\x64\example.msi" Compressed="no" InstallCondition="VersionNT64" />

Sources: http://wix.sourceforge.net/manual-wix3/wix_xsd_msipackage.htm

like image 69
Huemac Avatar answered Oct 07 '22 15:10

Huemac


As the other answers suggest you can use the VERSIONNT64 variable to check the on which platform you are installing.

Wix Burn supports NO-GUI or quiet mode by passing the command line parameter "-q".

Along with that it supports the following other arguments too:

The wixstdba supports only the "standard package switches":

-q, -quiet, -s, -silent = silent install 
-passive = progress bar only install 
-norestart = suppress any restarts 
-forcerestart = restart no matter what (I don't know why this is still around) 
-promptrestart = prompt if a restart is required (default) 
-layout = create a local image of the bootstrapper (i.e. download files so they can be burned to DVD) 
-l, -log = log to a specific file (default is controled by bundle developer) 
-uninstall = uninstall 
-repair = repair (or install if not installed) 
-package,-update = install (default if no -uninstall or -repair) 

Type your wixburnexename /? To get the details on your machine.

like image 23
Isaiah4110 Avatar answered Oct 07 '22 16:10

Isaiah4110