cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Xylene
Level 3

How do I overwrite an old installers customActions with something from my new install

I am new to Install Shield and am trying to solve a problem I have been tasked with.

Basically our old install uses a customAction to call an user defined Install Shield function. That function then prompts the user if they want to unconfigure (Not remove) the product. If yes it launches an external binary with an unconfigure flag. Once unconfigured the installer then proceeds to remove the product.

Fast forward to today.

Now we have a new version of the product we want to roll out and I need to update the installer to handle what I am calling a migration. I essentially want the new installer to overwrite the old install files, or remove, and then lay down the new install files. What I am running into though is that I am not able to stop the old installer from first asking the end user if they want to unconfigure the product (The customAction is being triggered)

Is there anyway to just overwrite the old install, update the product version and then carry on as if the product is now being installed, without having to run the old installers uninstall? Or if I do have to run the old installers uninstall can it be overwritten with a newer uninstaller so the CustomAction isn't called?
Labels (1)
0 Kudos

(5) Replies
PlinyElder
Level 7

Do you have access to the code from the old installer? More than likely that prompt is triggered by some type of property value. For example if the old installer sees that the setup.exe is running in a mode of REMOVE=ALL then trigger this custom prompt. You would have to know what the old installer uses to trigger the CA in order to possibly pass a value to that property to force it to bypass the CA prompt.
0 Kudos
Xylene
Level 3

PlinyElder wrote:
Do you have access to the code from the old installer? More than likely that prompt is triggered by some type of property value. For example if the old installer sees that the setup.exe is running in a mode of REMOVE=ALL then trigger this custom prompt. You would have to know what the old installer uses to trigger the CA in order to possibly pass a value to that property to force it to bypass the CA prompt.


Yes I have access to the old code. It seems like the CustomAction script is stored in the MSI database. Can the new installer set the REMOVE=ALL option prior to uninstalling the old installer? Where is the "REMOVE" variable stored?
0 Kudos
Xylene
Level 3

As an update, the old installer does check the REMOVE=ALL property and that triggers the uninstall which calls (all of the time) the unconfigure function. So as part of the uninstall the prompt to unconfigure is always called.
0 Kudos
PlinyElder
Level 7

It kind of depends on where that needs to be set. In suite projects you can set IsInstallMode=remove and in MSI projects you set REMOVE="ALL" for CustomAction sequence conditions. There is also some msi properties you can set to adjust the REINSTALLMODE, see Windows Install property reference
0 Kudos
Xylene
Level 3

PlinyElder wrote:
It kind of depends on where that needs to be set. In suite projects you can set IsInstallMode=remove and in MSI projects you set REMOVE="ALL" for CustomAction sequence conditions. There is also some msi properties you can set to adjust the REINSTALLMODE, see Windows Install property reference


In this particular case I want to update the old installer (or remove) but I don't want to prompt to unconfigure the product.
0 Kudos