InstallShield LE "Another version of this product is already registered"

9.4k views Asked by At

I'm running into a roadblock using InstallShield LE in VS2010. The second time running the resulting setup.exe (with incremented version numbers), I get the error

Another version of this product is already registered

By "incremented version numbers", I mean I changed the Minor Version, Build Number and Revision to larger numbers in AssemblyVersion and AssemblyFileVersion of my .exe (the DLL's are set to "1.0.*")

[assembly: AssemblyVersion("0.2.103.005")]
[assembly: AssemblyFileVersion("0.2.103.005")]
[assembly: AssemblyInformationalVersion("Alpha 0.1 - 2/8/2011")]

and also updated the Product Version in the General Information tab of the Installshield LE setup project from 0.10.0000 to 0.11.0000.

I did come across instances of this error message in other SO postings and on the manufacturer's community support forum, but did not find a solution that applies to me.

3

There are 3 answers

5
Eric J. On BEST ANSWER

It turns out the answer is to create an entry on the Upgrade Paths tab. When you do that, InstallShield LE will present a file selection dialog. If you have the old installer, presumably you can browse to it to get information about what version you wish to be able to upgrade from. In my case I didn't have the old installer handy, so I pressed cancel and the new Upgrade Paths entry was created anyway. I then adjusted the properties of that entry to specify a minimum and maximum version for the upgrade, and everything worked as expected.

EDIT

(from @lookatmike's comment)

You also have to change the Product Version and (somewhat counterintuitively) the Product Code in the general information tab. The Upgrade Code must stay the same.

1
Steve On

OK - This problem was driving me CRAZY - and I haven't found a perfect answer online.

So I decided I was done screwing around.

This may not be the "BEST" way to solve the problem - I'm sure there is some convoluted MSI-based way of "handling this properly" but I couldn't figure it out (I guess I'm dumb?)

Basically my installer just makes sure .NET is installed, and copies some files into the Program Files directory, adds some registry entries, shortcuts, etc.

If you have a more complex installation procedure - I'd encourage you to find the "right" answer elsewhere. But for something simple like I've got (and I suspect 95% of people struggling with this problem have) this works just fine.

First - NEVER touch "Product Code". I believe this is correct procedure for MSIs across the board... you shouldn't be changing the product code. And this solution relies on that as well.

Next - Copy the product code to your clipboard - we'll need it in a second.

Basically, we're going to tell InstallShield to ALWAYS UNINSTALL THE PRODUCT if it already exists on the machine.

enter image description here

enter image description here

If you or your partners ever run the install SILENTLY - make sure you do this in both places:

enter image description here

For "File Name and Command Line", enter:

msiexec /uninstall {YOUR PRODUCT CODE HERE} /passive

That's it. Now your installer will always uninstall the old version.

NOTE: THIS DISABLES ANY SORT OF "Am I running a newer version of the installer" CHECK.

0
rupweb On

I often reuse my Visual Studio projects and got this problem. As @Eric-j said I had to change the product code in the General Information tab of the VS Install Setup project:

enter image description here