Reputation: 21
I've successfully created a Standard Patch using InstallShield 2011 Basic MSI. I'm having trouble with it detecting an earlier version of the application that has been installed. For instance, I have an application called XYZ with a base version of 3.7.0.188 that I want to patch with version 3.7.0.201. I can successfully apply this patch to the 3.7.0.188 base. Now if I install an earlier version of application XYZ (3.7.0.173) and try to apply my patch, it fails. I want to be able to detect this and display a dialog that this can't be done, or am is my thinking all wrong? What's the correct way to do this? I feel that InstallShield should be able to inherently do this.
Upvotes: 2
Views: 875
Reputation: 15905
One thing to explore is if you see different behavior if you use a minor upgrade patch instead of the small update patch you describe above. Since you haven't changed one of the first three parts of your ProductVersion, you are delivering a small update. These are much harder to reason about, as Windows Installer routinely considers the versions to be equivalent and won't do anything at all to prevent you from going the "wrong" direction.
See Patching and Upgrades as well as the linked articles on small updates and minor upgrades.
Upvotes: 0
Reputation: 11023
Normally when you try to apply a patch to version which does not match its targets Windows Installer should give you a message similar to "The upgrade patch cannot be installed by the windows installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program..." Don't you receive this message?
This is controlled by the OS from my knowledge, not by InstallShield.
Upvotes: 0