cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rune_paulsen
Level 5

How to upgrade an msi include in a Suit installer

Hi

I have this installer problem.

I have a Suite installer with one MSI packages included

I have a new version, version 2, of this MSI installer.

First run the Suite installer.
Then I run my MSI installer, which will upgrade my MSI product to version 2
Then I go to add/remove and uninstall my Suite.

But, this is only removing the Suite entry in add/remove.
My msi program is still installed.

How do i configure my MSI installer version 2, to get the installed Suite to remove my upgraded MSI program.
Labels (1)
0 Kudos
(9) Replies
Not applicable

Just a thought. Have you configured the correct Detection Condition for your MSI package. The suite installer needs to detect the presence of your package.
0 Kudos
rune_paulsen
Level 5

But, i thought the Detection Condition is only used at installation time.

But, the problem can be related.

Since the new Version2 of the msi installer have a new product code.

I tried to add the new product code to the detect condition, the log showed a little progress, but the Suite decided to not uninstall
The InstallShield log show(when i remove the suite):
Before updating detect condition: (my msi is not detected at all)
Evaluating operations for parcel {85E027D8-23A5-46A5-A1AC-E55014DF988E}, parcel is eligible: false, detected state: 0

Final action state for parcel {85E027D8-23A5-46A5-A1AC-E55014DF988E}: 5

Action 5 = No action will be performed for the package


After updating detect condition:
Evaluating operations for parcel {85E027D8-23A5-46A5-A1AC-E55014DF988E}, parcel is eligible: false, detected state: 1

Final action state for parcel {85E027D8-23A5-46A5-A1AC-E55014DF988E}: 5

Even if detected state is 1 now, the Suite decide not to uninstall

= it seems we cannot use an msi to upgrade and msi installed by a Suite.
Can InstallShield shed some light on how they have thought we should do upgrades with suites?

There is no documentation about this.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

If you want your "existing suite" to remove a "new" .msi package, you'll have to replace the "existing suite". To make this make more sense, you'll probably want to create a new release of your base suite (keep the same Suite GUID), but include the major upgrade .msi package. Then instead of distributing just the major upgrade .msi package, distribute the updated Suite. Installing this suite will install the .msi (which will in turn upgrade/remove the previous .msi), and update the cached Suite information so that it detects the current .msi and removes it on uninstallation.

The detection condition is used at many times to determine the state of the package. This information influences detected feature states, and what sort of maintenance operations are available for each package.
0 Kudos
PSandhu79
Level 2

If your new .msi is just a minor upgrade keeping the same GUID and just updating the Product version from 1.0 to 1.1. Can the original suite not take care of the upgraded msi. Can you edit the Suite Cache does this store the package code GUID . We would like to send the suite out for a main release but we might need to update the packages within the suite independently with minor upgrades . But still want the original suite to take of all the packages. I can understand if we were performing a major upgrade this would not work but not sure why the minor upgrade does not work.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

The default detection for an .msi package includes checking the package code. A minor upgrade will change this whereas a minor upgrade patch will not. So for the case you describe, you could try overriding the detection condition for the .msi package, or you could distributed your out-of-band minor upgrade as a patch.
0 Kudos
rune_paulsen
Level 5

I have removed the package code from Eligibility Condition, and added a new Detection condition.
All->MSI Pacakge->Prodduct Code.

Now i can.
Run the Suite installer, which included V1 of ProgA.msi

Run Proga.msi V2 installer, which will do a minor upgrade.

Remove the Suite Installer, and the Prog.msi V2 is removed.

Is there any disadvantages of doing this change to detect condition?
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

I think it may prevent minor upgrades from being correctly applied by the suite itself, but if you intend never to do that, it seems like it should allow what you want to do.
0 Kudos

I also want to provide a MSI major upgrade with a Suite Installation.
Do I always have to update the Product Code in my Suite project with a new version?
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

For the MSI to see its upgrade as a major upgrade, its product code must change. As you will be including this in an updated suite, you should probably increment your suite's version. I would not expect you to need to change the suite's GUID.
0 Kudos