I had a difficult day today. I had completed the InstallShield setup program for a complex installation. My custom actions were wrapped up in a DLL and were working correctly.
As is standard procedure, we wiped our test machine and reinstalled Vista Business. I was confident that the QA department would take over and I would be free to move on to the next project. (I was wrong!)
The chief tester in our office, a women who's life story is beyond incredible, called me in five minutes after the test started. A component was refusing to install. I was flabbergasted. The error we were getting indicated the VC 80 runtime was not installed, a dependency was missing. A bit of study confirmed my suspicions. I went back to the build machine and verified the following:
- The correct merge modules from VS 2005 SP 1 were in the directory C:\Program Files\Common Files\Merge Modules.
- The msi build machine contained the correct redistributable selections and they were checked.
- Inspection with Orca* confirmed the redistributable was merged into the setup program.
- A look at the debug script showed the merge should be happening.
- The install log showed the merge was not touched.
Next, came the internet search engines. I searched high and low and found a lot of material on issue associated with installing the VC 8.0 side by side runtime. So, I was forced to make a management decision. I ripped out the merge modules, and broke out my trusty prerequisite editor. I added both the vcredist_x86.exe and the renamed vcredist_x86sp1.exe to the pre-req list of InstallShield. (No, I am not a Wix user. Sorry, nothing against it, I just understand the features of InstallShield much more thoroughly.)
I'd like to give you a happy ending, but my solution was to install the runtime redistributables using the exe files, not the merge files.
- - Orca is installed from the Windows SDK 6.1 version.