I need to create an MSI package which installs both 32-bit and 64-bit .dll files of a firebreath based plugin on a machine.
What I want to achieve is have both resources installed and use the one suitable depending on the Browser (32-bit or 64-bit). For instance, if I have a 64-bit machine with Windows, Chrome 64-bit and Firefox 32-bit; I want to be able to use my plugin from both browsers.
To do so, I am using Visual Studio 2008 and Wix. Up to now I was able to create a 32-bit .dll which is converted in a 32-bit .msi and a 64-bit .dll which fails to be converted to a 64-bit .msi, due to a heat.exe bug. I get something similar to this: https://groups.google.com/forum/#!msg/firebreath-dev/HmGYEgZamUQ/35WJWfB4zegJ
The implementation mentioned before would create 2 different .msi installers (if the 64-bit msi didn't fail). What I would like to do is generate both .dll files (32-bit .dll and 64-bit .dll) and then package them in one single .msi installer which registers both.
Is this possible and if so what would be the best way to do it?
Windows Installer doesn't support this. Strictly speaking an .MSI package is platform specific. There are some hacks and tricks to create a "hybrid" installer. This entails creating a 32bit MSI that subverts MSI checks to install files to 64 bit locations and custom actions to create 64bit registry keys.
The book answer is to create a 32bit and 64bit MSI and then encapsulate them in a bootstrapper that registeres itself with Programs and Features and installs the 2 MSI's under the covers. In WiX this would be accomplished using Burn to chain the 2 installers together.