28
votes

We've got a a quite simple WinForms application. I've created an installation using InstallShield LE which works fine on the first install. I'd like that users will be able to run the installation also for updating an existing copy. The problem is that I can't figure out what is the right way to create this update package. I've tried:

Changing the Product Code - the installation works but a new entry is being created in Add/Remove programs and the old entry is not removed.

Keeping the Product Code - Windows installer shouts: "another version of this product is already installed"

Tried to play with other codes (Upgrade Code / Product Version) - doesn't help

Is there any easy way to create this? Maybe something to tell the installer to remove its previous version if exist?

2

2 Answers

75
votes

In your InstallShield setup project, you should do the following:

  • select branch: Organize your setup -> Upgrade Paths
  • add new upgrade path and than press the cancel button
  • the default properties of the new upgrade path should not be changed if you do not plan to change the Product version from the following branch: Organize your setup -> General Information. If you plan to change the Product version, than you should play with the following upgrade path properties: Min Version/_Include Min Version_, Max Version/_Include Max Version_.
  • every time you need to create a new setup, change the Product code from the following branch: Organize your setup -> General Information.
  • please be aware that the Upgrade Code should NEVER be changed.
1
votes
  1. copy guid from /General info/"product code" to /Upgrade PAth / Upgrade code
  2. copy guid from /General info/"product code" to /General info / Upgrade code
  3. pres button "..." in /General info/product code to generate new guid

  4. Optional settings. In /Upgrade PAth / Upgrade code

    • disable max version
    • enable min version, for example you can put version 0.0.0.1 for minimal.
    • disable languale dependency