cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
agshah
Level 7

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.
Labels (1)
0 Kudos
(4) Replies
agshah
Level 7

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'
0 Kudos
agshah
Level 7

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
0 Kudos
deramor
Level 6

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.
0 Kudos
agshah
Level 7

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.
************************
0 Kudos