28

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?

nambar
  • 573
  • 1
  • 5
  • 17
  • possible duplicate of [How to make InstallShield uninstall previous versions?](http://stackoverflow.com/questions/12174400/how-to-make-installshield-uninstall-previous-versions) – Michael Urman Sep 09 '12 at 16:55

2 Answers2

76

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.
SchmitzIT
  • 9,227
  • 9
  • 65
  • 92
Sebastian
  • 761
  • 5
  • 3
  • 3
    @nambar, did this work for you? It works properly and I think you should accept the answer. – Thabiso Mofokeng Dec 30 '13 at 15:42
  • 2
    Worked for me. This is a better answer than what's in http://stackoverflow.com/questions/12174400/how-to-make-installshield-uninstall-previous-versions – kuradac Jun 27 '14 at 15:49
  • Also, check this question, which also has a great answer: http://stackoverflow.com/questions/11540520/how-to-get-installshield-le-to-uninstall-the-existing-installation-automatically – Andrew Garrison Feb 10 '15 at 18:15
  • This works for me. Thanks. I am curious though, on testing I found when executing the upgrade installer I created, InstallShield did not indicate that an upgrade was occurring. If there is some other detail in how to configure the InstallShield setup project so that this happens, I would like to know. – Mike Strother Apr 13 '17 at 15:24
1
  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
Pitka
  • 525
  • 5
  • 12