Patching Multiple Instance Installs with either InstallShield or WiX
Asked Answered
T

1

4

      I have a project built in InstallShield 12. It is a Web Application that needs to be installed multiple times, and those installations need to be patched.

I can create transforms, and patches just fine in both WiX and InstallShield.
When I try to patch a transformed install from InstallShield, I get the error:

"The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program.  Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch."

In InstallShield, I have tried adding the new Product Code from the transforms to the "List of Target Product Codes" through the Patch Design tab. Doing this will error out the patch creation with error:

"ERROR: At least one of the GUIDs '{ORIGINAL-GUID},{TRANSFORM-GUID}' defined in the ListOfTargetProductCodes property in the Properties table of the .pcp file is invalid."

In WiX (3.5), I've converted my project from InstallShield to WiX using dark.exe. I've gotten far enough that I can install a patch to a transform, but i'm getting the warning:

"Patch.wxs(11) : warning PYRO1079 : The cabinet 'Data1.cab' does not contain any files."

This is a problem, because I am trying to run an SQL script in the patch, but the patch doesn't insert my sql file into the cab.

I've also tried the .pcp method (pre WiX 3.0) through WiX, and only get as far as I've gotten in InstallShield.

I've been mostly referencing this page for my answers so far: http://ysdevlog.blogspot.com/2011/08/revisited-multiple-instance.html

TL;DR: How do I generate a patch for multiple instance installs using (preferably) InstallShield, or in WiX?

Tatianatatianas answered 27/2, 2012 at 20:27 Comment(1)
It's qute hard to guess what is wrong with your patch without seeing the code. If you share a snippet, it might be easier. It would also be great if you could narrow down the problem to some short sample instead of a piece of real solutionDrilling
T
5

I have resolved my own issue by entirely abandoning InstallShield. Rather than converting my InstallShield final msi into WiX, I have re-created my project in pure WiX. Doing this has allowed me to install multiple instances, and patch them as well.

It is a shame that I couldn't figure out how to get it to work through InstallShield.

Tatianatatianas answered 2/3, 2012 at 19:18 Comment(4)
May you post your WiX solution? At least the most important parts? These might be interesting for other users here as well ... Thanks in advance!Schmidt
I referenced the following page when I re-created my project in WiX. I think it will be more helpful to you, rather than me posting my specific project. codeproject.com/Articles/115036/…Tatianatatianas
People experienced with MSI may find that decompiling an existing MSI using dark.exe to generate a WIX XML source file that can then be cleaned up can ease the transition dramatically. It does require a basic working knowledge of Wix though.Audwen
dark.exe is one of the Wix tools.Audwen

© 2022 - 2024 — McMap. All rights reserved.