Flexera’s InstallTalk blog recently posted a blog articled titled `I Didn’t Know InstallShield Could Do That?` I mainly reference the article not for the content but to use it as a hook for a more interesting albeit darker version:
InstallShield can be used a bootstrapper for a WiX MSI.
It’s simple. InstallShield 2011 Premiere has some new features that allow you to inject custom commands at various stages of the build process. One of these steps is the Precompression Event. This event occurs right after the MSI has been built but not yet digitally signed. This allows you to do custom post build processing of the MSI without breaking it’s digital signature.
InstallShield’s handling of Setup Prerequisites ( the kind that run before you MSI ) it’s fairly loosely coupled from the MSI. Feature prerequisites are a bit more complicated but not impossible to reproduce. Let’s look at the work flow.
1) Create a Basic MSI project ( call it anything you want ) and then give it a feature and a component.
2) Add the .NET 3.5 SP1 setup prerequisite using the redistributables view. Right click and select properties and type in a release flag of DOTNETFRAME35SP1.
3) Create use the Release Wizard to generate a new Product Configuration and Release. Pick a compressed network image with setup.exe.
4) Set ProductName, ProductVersion, PackageCode, ProductCode and UpgradeCode to the same values as in your WiX msi. Set the Generate Package Code value to false and set the MSI Package File Name field to be the same as your WiX msi ( without the .msi part ).
5) Copy your WiX MSI to the location specified as
6) On the Build Events tab of the release paste in the following precompression command
cmd /c copy "<ISPROJECTDIR>WiX35.msi" "<ISPROJECTDIR>WiX35Release 1DiskImagesDISK1"