Use QuickPatch and Retain Registry Settings

We want to use QuickPatch but only to copy updated files and NOT update the Registry.

In the original installation we set some Registry entries. The user will most likely customize the behavior of our software that is then saved back to the Registry. When using Quickpatch it only allows you to Delete, Modify, Rename or Revert each Registry entry but not simply leave it alone!

Seems like a simple and basic request: Update the files using Quickpatch but leave the Registry alone. How can we achieve this?
Tags (2)
0 Kudos
1 Reply

InstallShield QuickPatch – retaining Registry settings.

I don’t remember having this problem last time I build a patch but perhaps I am mistaken as I can see no way that this would have worked in the past.
To produce a patch to our product to correct a minor problem. InstallShield QuickPatch is the obvious answer.
InstallShield takes the full details of the original msi package and using its graphical interface allows existing files within the package to be replaced with an updated version. Other more complicated actions are possible but replacing a single file – in this case an .exe file is a basic and simple requirement.
Even if a single file is specified InstallShield appears to always reset any specific Registry settings which are created/maintained by the original package. In our case the value of “SerialKey” held in our particular area of HKEY_LOCAL_MACHINE/SOFTWARE/…. Is “maintained” by the QuickPatch.
As SerialKey is modified post installation, the application of the QuickPatch resets it to the value upon installation. The product will therefore not run (the product checks for a valid value of SerialKey before it will operate!!).
I (and many others) cannot find a way to configure the QuickPatch within InstallShield to modify this behaviour.
Firstly create the QuickPatch in the normal way, but in the Build Settings / Common tab uncheck the Create Update.exe option. The output from the build of the QuickPatch will therefore be an .msp file.
Transmit the file PatchPackage.msp to the installation location.
From the command line:-

msiexec /p C:\....\PatchPackage.msp REINSTALL=ALL REINSTALLMODE=ous

The key is that InstallShield will effectively call this with the default for REINSTALLMODE which is omus. The exclusion of m means that registry items already in HKEY_LOCAL_MACHINE will NOT be altered.
0 Kudos