InstallShield LE “Another version of this product is already registered”

旧巷老猫 提交于 2019-12-03 12:54:21

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.

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.

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

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.

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:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!