2
votes

I have an Installshield suite project(setup.exe) containing 2 features(msi packages) you can choose to install (lets say A and B). I also have an upgrade option that should uninstall old package and install the one with newer version. Add/remove programs contains only uninstaller for the suite which uninstalls any feature installed.
The problem occurs if I install 1st suite with only A feature and second suite with only B feature, and then try to uninstall the suite. It then only uninstalls B feature, and A feature stays. After that I cannot uninstall A feature since uninstaller loses appearance in add/remove programs. How to solve this?

3

3 Answers

0
votes

It's hard to tell what you want your installer to do based on what you're saying (I don't have enough rep to say that as a comment).

Having said that, if I'm reading your question correctly, you need to reorganise your installer. I have no idea what relationship features A and B have, so I've given some common scenarios.

If B is an add-on to A, then B needs to be part of the same installer as A as a sub-feature. That way, users who want B and A can install (and uninstall) them together.

If B is the upgrade to A (trialware?), then you should make sure that B completely replaces A.

Or maybe what you really want is to add feature B to your pre-existing installation of A, in which case you don't run the installer again to add B, you choose "Change" in the Add/Remove Programs dialog.

0
votes

Question is some days old and I want only to mention to things:

It is a question of correct parametrization. In my suites it works :-)

I really feel sorry with everyone, who has to use the IS suite, at least in 2011 version which I know. Beta quality in my eyes. It takes really hard work and programming to workaround all indulgences and disadvantages. Once you know them all (can take half a year or more), you can work with it.

0
votes

I'm speaking about this from the perspective of InstallShield 2014 so hopefully this applies to whatever version you are using. So at least in InstallShield 2014, you can perform the desired behavior in the following way. For each Primary package set "Minor Upgrade Handling" to automatic, then do not change any of the Suite GUID, Package Guid or ProductCode. You then bump up your ProductVersion but only for maintenance numbers leaving the major and minor versions the same. Automatic minor upgrade handling sets REINSTALL to "ALL" but sets REINSTALLMODE to "VOMUS". There are a whole lot of implications to "VOMUS" so do some reading (https://msdn.microsoft.com/en-us/library/aa371182%28v=vs.85%29.aspx) and make sure you are using best practices surrounding "VOMUS".