This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Major Upgrade issue
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 27, 2008
02:45 PM
Major Upgrade issue
Hi,
I have a installer from Installshield 11 (InstallScript MSI) and I'm now using IS2008.
I didn't design the previous installer and it was a bit of a mess, so I created a new setup design / features / components from scratch. This new project is a "Basic MSI Project" because Installscript was not actually needed.
The new project will install a more recent version of the application to the same location and using basically the same files.
I assigned a new product code and used the old Upgrade code from the IS11 project.
I added a new "Major Upgrade item" and the upgrade works but there are two problems:
How can I solve this?
I thought about a custom action to uninstall previous versions and another one to delete the reg keys for the add/remove program entry.
But really, I'd prefer to get this workign without any "tricks".
Any ideas?
I have a installer from Installshield 11 (InstallScript MSI) and I'm now using IS2008.
I didn't design the previous installer and it was a bit of a mess, so I created a new setup design / features / components from scratch. This new project is a "Basic MSI Project" because Installscript was not actually needed.
The new project will install a more recent version of the application to the same location and using basically the same files.
I assigned a new product code and used the old Upgrade code from the IS11 project.
I added a new "Major Upgrade item" and the upgrade works but there are two problems:
Uninstalling the old application works fine except for the fact that there is a REBOOT PROMPT... if you keep the default setting to reboot and continue there is an error "0x80040706". You click OK in the error window and installer goes on.
Now there are 2 entries in "Add/Remove Programs", one for the old version and one for the new one
How can I solve this?
I thought about a custom action to uninstall previous versions and another one to delete the reg keys for the add/remove program entry.
But really, I'd prefer to get this workign without any "tricks".
Any ideas?
(4) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 28, 2008
08:00 AM
If I understood you correctly, your issue is this: the old InstallScript MSI project creates registry keys used by the InstallShield engine that runs when you uninstall it from, say, Add/Remove Programs. That uninstall runs the engine, which in turn uninstalls the msi.
Your new Basic msi project uninstalls the old version simply by running the uninstall of the old msi - it obviously won't know anything about the script.
Consequently, the old InstallShield registry entries do not get removed.
If you don't need to support silent installs, you can create a custom action in the UI sequence to run the old scripted uninstall. You can't do this in the Execute sequence because you can't run two msi's at the same time. This is not really Best Practice, but we've done it successfully.
Or, you can use the RemoveRegistry table to remove the InstallShield-created entries when the upgrade runs. This will work so long as the old script didn't set any msi properties that the old msi will need to properly uninstall. We've done this, too.
Or, although I haven't tried this, if you can release your product with a wrapper setup.exe, you might be able to set a prerequisite to uninstall your old version before the new version runs. This will mean that you can't support feature migration in the upgrade, though, because the old settings will be gone when the new msi starts.
Hope this helps.
Your new Basic msi project uninstalls the old version simply by running the uninstall of the old msi - it obviously won't know anything about the script.
Consequently, the old InstallShield registry entries do not get removed.
If you don't need to support silent installs, you can create a custom action in the UI sequence to run the old scripted uninstall. You can't do this in the Execute sequence because you can't run two msi's at the same time. This is not really Best Practice, but we've done it successfully.
Or, you can use the RemoveRegistry table to remove the InstallShield-created entries when the upgrade runs. This will work so long as the old script didn't set any msi properties that the old msi will need to properly uninstall. We've done this, too.
Or, although I haven't tried this, if you can release your product with a wrapper setup.exe, you might be able to set a prerequisite to uninstall your old version before the new version runs. This will mean that you can't support feature migration in the upgrade, though, because the old settings will be gone when the new msi starts.
Hope this helps.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 28, 2008
02:45 PM
Hi,
The old installer only uses InstallScript to set LicensePath and apparently to set SdFinishReboot, I'm not sure. Let me know what I should check to help you understand this scenario.
The problem is that after uninstalling the previous version it shows the reboot screen (for the previous version) on top of the current install screen.
If you click "NO" it goes on, if you click "YES" it gives an error and it goes on.
This doesn't interrupt the installation but it will confuse the users so I have to get rid of it.
Also, where can I put a custom action to run a task before uninstalling the old version?
Thanks
The old installer only uses InstallScript to set LicensePath and apparently to set SdFinishReboot, I'm not sure. Let me know what I should check to help you understand this scenario.
The problem is that after uninstalling the previous version it shows the reboot screen (for the previous version) on top of the current install screen.
If you click "NO" it goes on, if you click "YES" it gives an error and it goes on.
This doesn't interrupt the installation but it will confuse the users so I have to get rid of it.
Also, where can I put a custom action to run a task before uninstalling the old version?
Thanks
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 31, 2008
10:31 AM
I found the "RemoveExistingProducts" action and read the info on it. So this is the step where the actions in the "Upgrades" section are run.
Still, I can't find a way to prevent the uninstallation of the old version from popping up a reboot dialog 😞
Is there a condition that only makes an action run when there is an "Upgrades" action going on?
Still, I can't find a way to prevent the uninstallation of the old version from popping up a reboot dialog 😞
Is there a condition that only makes an action run when there is an "Upgrades" action going on?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 20, 2008
01:18 PM
I can't find a way to supress the reboot prompt :mad: :mad: :mad:
To recap, I have an installer from InstallShield 11 that installed an app. Now I'm making a new one in Installshield 2008 with a new feature structure and product code.
I've tried using the upgrade code and I still get the reboot prompt.
Now I've been trying to do this using MSIEXEC.EXE to remove the previous version, and I still can't do it.
The reboot prompt always appears.
I've tried REBOOT=ReallySuppress and RebootYesNo="No" and every possible combination. It shows up everytime. Is there a way to suppress any INSTALLSCRIPT running while uninstalling the old application?
I'm going mad and I'm actually considering deleting stuff manually (directory, registry entries) which is not the desired solution at all.
To recap, I have an installer from InstallShield 11 that installed an app. Now I'm making a new one in Installshield 2008 with a new feature structure and product code.
I've tried using the upgrade code and I still get the reboot prompt.
Now I've been trying to do this using MSIEXEC.EXE to remove the previous version, and I still can't do it.
The reboot prompt always appears.
I've tried REBOOT=ReallySuppress and RebootYesNo="No" and every possible combination. It shows up everytime. Is there a way to suppress any INSTALLSCRIPT running while uninstalling the old application?
I'm going mad and I'm actually considering deleting stuff manually (directory, registry entries) which is not the desired solution at all.
![](/skins/images/8CE4FAD0DE6F3A6F9D0567434D2D2DAE/responsive_peak/images/icon_anonymous_message.png)