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
- :
- Re: Major Upgrade - Earlier version entry not removed from Uninstall or Change programs
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
‎Oct 11, 2017
06:06 PM
Major Upgrade - Earlier version entry not removed from Uninstall or Change programs
Hi all,
We had below two versions of our product:
11.1.1200
11.2.1100
For the 11.2.1200 version we made change to make it a 'Major Upgrade' so that if
earlier versions are installed on the machine then installing this new version will cause
the earlier versions to be uninstalled automatically first.
When version 11.2.1100 installed and if we install 11.2.1200 then everything is fine.
However when version 11.1.1200 is installed and if we install 11.2.1100 then the
entry for the version 11.2.1100 is still left behind in 'Programs and Features' -> ' Uninstall or Change programs'
Why is that? How to solve this please? Why does the entry for 11.2.1100 get removed but not 11.1.1200 ?
thanks in advance.
We had below two versions of our product:
11.1.1200
11.2.1100
For the 11.2.1200 version we made change to make it a 'Major Upgrade' so that if
earlier versions are installed on the machine then installing this new version will cause
the earlier versions to be uninstalled automatically first.
When version 11.2.1100 installed and if we install 11.2.1200 then everything is fine.
However when version 11.1.1200 is installed and if we install 11.2.1100 then the
entry for the version 11.2.1100 is still left behind in 'Programs and Features' -> ' Uninstall or Change programs'
Why is that? How to solve this please? Why does the entry for 11.2.1100 get removed but not 11.1.1200 ?
thanks in advance.
(4) Replies
‎Oct 23, 2017
05:38 PM
Appreciate any input on this please.
One thing I note is that after the upgrade, I see below entry created in the registry. The guid is from the earlier version that got removed/upgraded.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{03D0F4EC-A19F-473A-A874-13E677767F3H}
So essentially
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{03D0F4EC-A19F-473A-A874-13E677767F3H}
got removed and
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{03D0F4EC-A19F-473A-A874-13E677767F3H}
got created.
If I delete this registry entry then the entry for the version 11.2.1100 is then removed from 'Programs and Features' -> ' Uninstall or Change programs'
One thing I note is that after the upgrade, I see below entry created in the registry. The guid is from the earlier version that got removed/upgraded.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{03D0F4EC-A19F-473A-A874-13E677767F3H}
So essentially
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{03D0F4EC-A19F-473A-A874-13E677767F3H}
got removed and
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{03D0F4EC-A19F-473A-A874-13E677767F3H}
got created.
If I delete this registry entry then the entry for the version 11.2.1100 is then removed from 'Programs and Features' -> ' Uninstall or Change programs'
‎Oct 23, 2017
06:06 PM
correction:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{03D0F4EC-A19F-473A-A874-13E677767F3H}
was already present, just that after upgrade, from 11.2.1100 this entry does not get removed and hence the entry for the version 11.2.1100 is then removed from 'Programs and Features' -> ' Uninstall or Change programs'
Why would this registry entry for 11.1.1200 not get removed but is getting removed for 11.2.1100
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{03D0F4EC-A19F-473A-A874-13E677767F3H}
was already present, just that after upgrade, from 11.2.1100 this entry does not get removed and hence the entry for the version 11.2.1100 is then removed from 'Programs and Features' -> ' Uninstall or Change programs'
Why would this registry entry for 11.1.1200 not get removed but is getting removed for 11.2.1100
‎Oct 26, 2017
05:36 PM
I assume you are using an Installscript MSI project type? This is important information to provide.
The usual upgrade process is to only ever allow moving forward. That is 1100 -> 1200 and never the reverse.
If this is a requirement however you can make the upgrade table go in both directions but this would require the already released 1100 version to be changed.
First, remove the Prevent Downgrade item in upgrades view.
Add a major upgrade item with the settings:
Products Sharing my Upgrade code
and
Within a specific version
Check the check box for Inclusive versions and enter your lowest ever version in the left box. Leave the right one blank.
Now all your builds will upgrade each other.(or attempt to)
Keep in mind that FileCost action will run and if it sees that you have newer versions for your dlls and other binaries, it will mark them as do not install.
To work around that issue, I move the action "RemoveExistingProducts" to just after ValidateProductID in the execute sequence.
There are some downsides to doing this. Notably, if there is an error, rollback isn't supported anymore since the old product is already gone. Nothing to roll back to.
However I find that the change is a good one to make since it helps the fast majority of cases that are expected to work. I try not to worry about the edge cases when errors occur.
The usual upgrade process is to only ever allow moving forward. That is 1100 -> 1200 and never the reverse.
If this is a requirement however you can make the upgrade table go in both directions but this would require the already released 1100 version to be changed.
First, remove the Prevent Downgrade item in upgrades view.
Add a major upgrade item with the settings:
Products Sharing my Upgrade code
and
Within a specific version
Check the check box for Inclusive versions and enter your lowest ever version in the left box. Leave the right one blank.
Now all your builds will upgrade each other.(or attempt to)
Keep in mind that FileCost action will run and if it sees that you have newer versions for your dlls and other binaries, it will mark them as do not install.
To work around that issue, I move the action "RemoveExistingProducts" to just after ValidateProductID in the execute sequence.
There are some downsides to doing this. Notably, if there is an error, rollback isn't supported anymore since the old product is already gone. Nothing to roll back to.
However I find that the change is a good one to make since it helps the fast majority of cases that are expected to work. I try not to worry about the edge cases when errors occur.
‎Nov 02, 2017
06:35 PM
thanks for you response Deramor but below did not work. I think I have made this thread too confusing.
I did not need upgrade in the reverse. I have started a new thread on this if you can kindly take a look please.
I have kept it simple there.
****************
Add a major upgrade item with the settings:
Products Sharing my Upgrade code
and
Within a specific version
Check the check box for Inclusive versions and enter your lowest ever version in the left box. Leave the right one blank.
************************
I did not need upgrade in the reverse. I have started a new thread on this if you can kindly take a look please.
I have kept it simple there.
****************
Add a major upgrade item with the settings:
Products Sharing my Upgrade code
and
Within a specific version
Check the check box for Inclusive versions and enter your lowest ever version in the left box. Leave the right one blank.
************************