2

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.

  • BTW, "it fails" is pretty non-descriptive. It would be more clear to provide any error message you see (is it just the Setup Interrupted dialog?), as well as any relevant error codes seen in a verbose log. – Michael Urman Jan 10 '13 at 13:14
  • This is the error I get: Error 1328.Error applying patch to file C:\Config.Msi\PTC90A.tmp. It has probably been updated by other means, and can no longer be modified by this patch. For more information contact your patch vendor. System Error: -1072807676 – user1893305 Jan 10 '13 at 14:14

2 Answers2

0

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.

Bogdan Mitrache
  • 10,536
  • 19
  • 34
  • I'm not getting that message. When I look at the log when it compares the Product Code and Upgrade Code, it says that both are valid but when it looks for the product Code again (in the registry?) it can't find it in the database. I'm not sure what database it's referring to though. I've tried to get help with this on the Flexera forum but it takes so long to get a reply. – user1893305 Jan 10 '13 at 11:33
  • Yes, in the registry it looks for all the info. The database is the MSI package, which is actually containing tables, exactly like a database. Can you attach a full verbose log of this installation? – Bogdan Mitrache Jan 10 '13 at 12:14
  • The log is pretty log, can I paste here or is there a way to attach it? – user1893305 Jan 10 '13 at 14:15
0

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.

Michael Urman
  • 15,737
  • 2
  • 28
  • 44