A typical "upgrade table" for InstallShield MSI installation cntains two records: "from any version to current is upgrade" and "from current to any is downgrade". This requires to manually copy-paste "current version" number every time a major, minor or build number has changed, that is not very good.

Currently i'm using a script that parses .ism project file and replace version number in upgrade table before build. But this is a dirty hack. Maybe it is possible to use "ProductVersion" MSI property in upgrade table, so product version is stored only in this property? I have tried to enter this property name multiple ways, like [ProductVersion] or ##ProductVersion##, but nothing helps - it is not being replaced by property value, and resulting MSI contains "##ProductVersion##" text instead of "1.30.1264" property value.

1 Answer
1

A new project should contain two records intended to behave like you describe. However instead of storing an actual product version, they should have a marker token, something like ***ALL_VERSIONS*** (sorry, I'm not near my copy of InstallShield right now). The name for this token isn't great, because what really happens is the current ProductVersion is substituted for it at build.

If you've already changed the token to an actual version, you can change it back with the "friendly" view by selecting a radio button referencing "my version" instead of the actual version. Or you can create a new project to see it, and copy it in. The token works in either the minimum or maximum field in all recent versions (but just in the maximum field in some older versions) of InstallShield.

Just for information sake, does this ALL_VERSIONS also resolve to [ProductVersion] if placed in entering say Product Name?
–
SidAug 28 '14 at 13:04

1

@Sid, no - InstallShield does this particular substitution just in the version columns in the Upgrade table. If you need it in a property, you're better off either setting it from your build system or at run time with a set-property custom action.
–
Michael UrmanAug 29 '14 at 12:14