Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Avoid downgrade


8 replies to this topic

cornel_gav

cornel_gav
  • Full Members
  • 10 posts

Posted 01 April 2008 - 12:58

I want to disaply a MessageBox informing the user that he's making a downgrade and stop the installation.
How can I do this in InstallShield?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 01 April 2008 - 13:47

It depends on whether you are changing the ProductCode (Major or Minor Upgrade)

cornel_gav

cornel_gav
  • Full Members
  • 10 posts

Posted 01 April 2008 - 16:47

Major upgrade.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 02 April 2008 - 13:47

Add a row to the Upgrade table to detect the downgrade, with the "detect only" flag set. Add a type 19 (display error message and exit) custom action to both the UI and the Execute sequence. Use the property from the Upgrade table as condition for the custom action.

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 05 April 2008 - 06:29

With Installshield 2008 there are now built in Installshield support for this via a default Upgrade table entry and a custom action called ISPreventDowngrade in both sequences.
Regards
-Stein Åsmul

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 05 April 2008 - 23:34

That's true, if you are using InstallShield you don't need to do this manually. However (if I recall correctly) IS 2008 will not add this to projects you migrate from previous InstallShield versions, only for projects you create in IS 2008 from scratch.

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 29 May 2008 - 10:17

It looks like Installshield will add this custom action whenever the Upgrade table is authored - even for older projects.
Regards
-Stein Åsmul

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 29 May 2008 - 11:28

The Upgrade table entry created looks like this:

UpgradeCode: {00000000-0000-0000-0000-000000000000}
VersionMin: ***ALL_VERSIONS***
VersionMax:
Language:
Attributes: 2
Remove:
ActionProperty: ISFOUNDNEWERPRODUCTVERSION
ISDisplayName: ISPreventDowngrade

Anyone know what's up with the GUID and the MinVersion fields. Are these undocumented Microsoft MSI features or some Installshield franken-beast?
Regards
-Stein Åsmul

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 May 2008 - 11:57

I believe these are placeholders which get replaced with the actual UpgradeCode and current version number during build. You should only see them in the project file but not in the built msi file.