PDA

View Full Version : How to make setup that updates existing installation?



hackaway
05-07-2012, 06:45 AM
I have read a number of posts on the Internet regarding this and I just can't get it to work. Its driving me nuts. Google "InstallShield Another version of this product is already installed" and see for yourself.

OK so I have an application. It is written in C# using VS 2010 Professional. I release new versions of this application (of course) which contain newer versions of the executable and included resource files (*.dll) and other files.
I use standalone InstallShield as I have had problems with it via VS 2010. Don't know why but that is not relevant to this post.

What I would like to do if possible is to get the installer to update an existing installation of my application, if there are no existing installation then just make a new install. The installer should replace older versions of installed files. In "Add/Remove Programs" or "Program And Features" I want a single entry for my application. If I have understood this correctly this should be a "Minor Upgrade". Is this correct?

Whatever I do I get the "Another version of this product is already installed" message dialog.

In my C# solution I increment the version of both these properties :


[assembly: AssemblyVersion("1.6.25.7323")]
[assembly: AssemblyFileVersion("1.6.25.7323")]

so that the next version would be


[assembly: AssemblyVersion("1.6.26.5414")]
[assembly: AssemblyFileVersion("1.6.26.5414")]


The last four digits are not relevant and this I have read over and over again. Only the three first digits matter.

In the InstallShield project I have:

Updated the [Product Version] to reflect what is listed in the AssemblyInfo.cs (AssemblyFileVersion) file for the executable. ("Organize Your Setup" -> "General Information")
Kept both [Product Code] and [Upgrade Code] intact. ("Organize Your Setup" -> "General Information")
Created a new [Upgrade Paths] entry named "NewUpgradeEntry1". This entry has the same [Upgrade Code] as the one listed in "General Information". I have tried fiddling with the settings for the "NewUpgradeEntry1" using Min/Max versions, not using them. Doesn't make a difference. ("Organize Your Setup" -> "Upgrade Paths")
Updated the [Package Code] manually and using the option "Generate Package Code". Still no workyworky.


So by generating a new [Product Code] I get the installer to go through although I get multiple entries in "Add/Remove Programs" or "Program And Features". This I do not want nor do I understand whether it makes the installation corrupt or the Windows Installer confused considering it is the same installation directory/folders.

What the h**l am I doing wrong?

Links I have read:
http://kb.flexerasoftware.com/doc/Helpnet/installshield12helplib/MajorMinorSmall.htm
http://stackoverflow.com/questions/994571/preventing-installation-of-lower-version-over-higher-version
http://setupanddeployment.com/installation-environment/automatically-upgrade-older-versions/
(and many more or less relevant webpages on the subject)

InstallShield 2010 - Express Edition
Version 17
Hotfix A

Please someone help!

TekkGuy
01-07-2013, 01:14 PM
Did you ever find a resolution to this? I am having a similar problem where I can't seem to figure out how to create a Setup.exe that can also "upgrade" a previous installation.

If I keep the "Product Code" the same, then I get an error stating that another version is already installed. This holds true even if I change the "Product Version" number.

If I change the "Product Code" (leaving the "Upgrade Code" unchanged), and change the "Product Version" as well, then the new installation I create installs. However, it creates a second entry in the "Add/Remove Programs" list, making it look like two versions of my application are installed, when in fact there is only one.

I have also added an entry into the "Upgrade Paths" tab, called it "v2.00+" and in it I have set the "Upgrade Code" to match the upgrade code of the installation, "Min Version" = 2.00.00 (included) and I set "Include Max Version" to No.

I cant think of anything else to try...

Can anyone supply step-by-step directions on how to get InstallShield 2011 Express to "Upgrade" a previous installation? Is it that the Express version of InstallShield doesn't allow for "Upgrades"? Do you have to purchase the Professional version or higher?

mmatioc
11-07-2015, 08:46 PM
I have experimented with various settings, but none worked.
Apparently Installshield Express cannot do this.
This is really disgusting. This is a very common use case.