cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Alex_Farber
Level 3

How to make new product version

I have InstallShileld project which installs my program. Let's say I set the first version: 1.1.1.1 in General Information - Product Version field.
Now I need to make a new product version, which should replace previous one, if it exists. So, I change the version to 1.1.1.2, change some project files and build installation package. When such package is executed on computer with 1.1.1.1 version, it opens Program Maintenance window, I select "Modify", "Next" etc. Finally, it doesn't modify anything, and still reports 1.1.1.1 in the "Programs and Features" window. I need to uninstall previous version and install new one to make it working.

How to make a new version, which should replace an existing one, without uninstalling it? I guess this should be Product Code or Upgrade Code in General Information, but I am not sure.
Labels (1)
0 Kudos
(4) Replies
dan_galender
Level 10

The Windows Installer only considers the first 3 levels of the version string to be significant when determining differences in product versions. In your scenario, both product versions were effectively the same, 1.1.1. Change the updated product's version to 1.1.2 (or if you like, 1.1.2.0) and it should work. The fourth level (after the third "dot"), if specified, will display in "Programs and Features", but is ignored when determining differences between releases.
0 Kudos
Alex_Farber
Level 3

Thank you. This way works for new test InstallShield project I created. However, for my old existing project it doesn't work. For example, I build version 1.10.05 and install it. Then I build version 1.10.06. When it is installed over 1.10.05, setup enters to maintenance mode, and then doesn't change anything.
Additional things I have tried:
1. Changing ProductCode on every build.
2. Adding new Major Upgrade item.
It doesn't help, setup always works in maintenance mode.

Generally, I need the following scenario:
- If installed version is less than existing, stop.
- If installed version is equal to existing, open Maintenance dialog.
- If installed version is more than existing, make major upgrade (uninstall existing version and install new one).

This is old project upgraded from 2012 version, probably some parameters are wrong and it doesn't behave like a new project.
It there any way to get such the behavior I need?
0 Kudos
dan_galender
Level 10

The way Windows Installer handles upgrades hasn't changed.

Have you disabled InstallShield's setting that changes the PackageCode for every build?
0 Kudos
Alex_Farber
Level 3

Thank you, setting Generate Package Code property to Yes solved the problem. Probably something happened when installation project was upgraded from 2012 to 2015 InstallShield version.
0 Kudos