2 Product GUIDs => 1 maintenance update
Posted 16 May 2011 - 18:00
I've got software installed on many different machines. Some of these were installed with Installshield 6 and others with Installshield 2010. It seems that when I made the transition to 2010 the product GUID changed and I didn't realize it.
I'd like to create an Installscript install that "updates" both GUID versions of the program by running in maintenance mode. Of course this is working when it's run on a machine when the GUID matches but on the ones where it doesn't match the first time install runs.
Is it possible do create one install to update both of these? Is it possible to maybe change the GUID on some of the machine so they all match?
Any other ideas? I can't seem to find many options for a solution.
Posted 16 May 2011 - 19:48
Please check Google or preferably the Windows Installer SDK for information on constructing a major upgrade. It essentially revolves around authoring the upgrade table and adding the required secure properties to detect an existing install that you want to uninstall.
Posted 16 May 2011 - 20:54
That does look like it would work... so you're suggesting that I move from an Installscript project to a Basic MSI project?
Do you happen to know the easiest/quickest way to do that?
Posted 17 May 2011 - 13:14
Instead, I would create a custom InstallScipt-based install that simply "updates" both installations through copy file deployment & manual reregistration where necessary and just rely on the existing installations for the uninstall support.
Also, it's a good thing that the GUID automatically changed because otherwise you would have had created installation confusion from mixing the two versions of InstallShield. In the future though, I wouldn't recommend switching IS versions unless that setup no longer needs to maintain/support the previous release(s).
Hope it helps.
Edited by Taco Bell, 17 May 2011 - 13:25.
Posted 17 May 2011 - 13:36
Posted 18 May 2011 - 22:42
I have a few followup questions (I've never tried copying the files manually):
1. If the "update" copies over new files, as well as overwriting old ones, how can I ensure that the uninstall will also delete those new files?
2. You mentioned 'manual reregistration'. What do you mean by this? Do you mean re-registering .dll and .ocx files with nResult = LaunchAppAndWait("regsvr32", "/s "+szFilename, WAIT); ?
Posted 19 May 2011 - 14:27
One way of overcoming this limitation though would be have your update also include uninstall support in order to address the new files and have it programmatically kick off the previous uninstall to cover the existing files.
2. Yes, that is indeed what I mean.