cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
BkSetupDev
Level 4

Installshield Suite starts in Maintenaince, when one package is installed in previous version

I have an Installshield Suite project with two Basic MSI Setups, each one packed in a single executable package:

Feature 1
+ PackageA.exe 1.2.3.0 (as primary)
+ PackageB.exe 1.2.3.4 (as primary)

On a system, where no version of both setups is installed, it starts in Fort-Installation mode. But on a system, where one setup is installed in a previous version (but no suite is installed) it starts in maintenaince mode, e.g.

System with
PackageA 1.2.2.0 is installed and
PackageB 1.2.3.3 is installed.

Chosing Modify installed the Suite, but does not update the Packages. Installing the packages by themselfes does a correct major upgrade (as configured).

I think, I don't get the detection settings correct. I tries every possible combination in "MSI Upgrade", but nothing works as desired.

For example:

{UpgradeCodeOfPackageA}
Minimum Version: 1.2.3.0
Include Minimum Version: Yes

My understanding is, that when a MSI Package with this UpgradeCode and ProductVersion 1.2.3.0 is installed, then the Suite should not install PackageA in this Suite. But as it starts in Maintenance Mode the dectetion condition must be true, right?

Labels (1)
0 Kudos
(9) Replies
Jenifer
Flexera Alumni

Hi @BkSetupDev ,

  • If the setup is of msi(compressed if you have things to compress), you can use Minor Upgrade Handling setting in the Packages view of the Suite project to manage upgrade installation.
  • If it is of exe type package : The Suite engine in general does not know how to determine if an executable file is installed on a machine. So  you need to manually create the new package’s detection condition in the Suite project.

I would suggest you to so through this table on how to achieve major\minor upgrade on different types of packages:

Old version replacement (Replace an old version with a new version if present; otherwise, install the new version.)

For a major upgrade .msi package:

1. Change the product code.

2. Change the product version. 3. Change the package code.

4. Update the files and other data as needed.

5. Add entries to the Upgrade table.

6. Build the new version of the package.

 

 For a minor upgrade .msi package:

 1. Change the product version. 2. Change the package code.

3. Update the files and other data as needed.

4. Build the new version of the package.

 

For an InstallScript package:

1. Change the product version. 2. Update the files and other data as needed.

3. Build the new version of the package.

 

For other package technologies (.exe packages, etc.), consult the appropriate documentation for creating a new version that replaces the earlier version.

1. Change the Suite version.

2. Replace the old version of the package in the project the new version.

3. For .exe packages and packages other than .msi and InstallScript, update the detection conditions of the new version of the package as needed.

 4. Build a release of the new version of the Suite.

So for exe packages it purely depends on installation author,you can choose which condition will fit so that it won't detect installation.

References would be:https://resources.flexera.com/web/pdf/archive/is-wp-installshield-life-cycle-suite-advanced-ui.pdf

https://blog.flexerasoftware.com/software-installation/2013/04/managing-the-life-cycle-of-a-suiteadvanced-ui-installation/

 

Thanks,

Jenifer

0 Kudos

Hi Jennifer,

thank you for reply. Unfortunately it does not answer my question about the detections condition. I seem to be unfit to "Update the detection conditions of the new version of the package as needed."

I configured the package correctl for a major update from version 1.2.2.0 to 1.2.3.0, but all detection conditions I tried does not start the Suite setup into "update mode".

0 Kudos

Hi @BkSetupDev ,

 

In my previous reply i was trying to explain that for exe package types,since the choice of detection condition is vast it can't be chosen specifically unless until it would be suitable for specific package.

Please note the current operation you are doing isn't major upgrade since you are changing minor versions only:Eg:From 1.2.2.0 to 1.2.3.0.Major upgrade would be 1.0.0 to 2.0.0

I can give you one generic minor upgrade detection condition for exe package type which had worked for me (with minor upgrade scenario):

  • Add setup.exe as package to suite project
  • Choose detection condition of type MSI package
  • Mention the product code of msi package which you will get from Basic MSI->General Information->Product Code
  • Mention Product Version as say here:1.2.2.0 for first time installation
  • Select Comparison as equal to(Please refer attached snap for reference)
  • Suite-Exe-Detection-Condition.PNG
  • Build and execute
  • Then Make the necessary changes in basic msi project for minor upgrade with below changes:
    • Change the product version to 1.2.3.0
    • Add one more release(Release-2) under releases view and build setup.exe(Let it be compressed or uncompressed)
  • Add the modified setup.exe to Suite project by deleting old setup.exe under package files option of setup package
  • Now change the existing detection condition Product version from 1.2.2.0 to 1.2.3.0,let remaining settings be as it is.
  • Build and execute.Give it a try with single executable first and observe the behavior

Let me know if this specific set of detection condition works for you.

 

Thanks,

Jenifer

0 Kudos

It works as long as both Products are not installed or are installed in a monir version. But when one product is already with the suite's packages version is installed, maintenance mode starts.

It is possible, that ProductA and/or ProductB is already installed on the system, as we ship them seperatley AND in a suite. I would expect, that the suite only starts in maintenance mode, when BOTH products are installed.

When ProductA is installed and ProductB is not, I would expect the suite to install ProductB without touching ProductA – and vice versa. 
When ProductA is installed and ProductB is installed in a lower version, I would expect the suite to update ProductB without touching ProductA – and vice versa. 

Both packages are set to Primary.

0 Kudos

Hi @BkSetupDev ,

 

That is the expected Suite behavior for the case of Primary packages.

The package type identifies whether the presence of that package on a target system should influence whether the Advanced UI or Suite/Advanced UI installation runs in first-time installation mode or maintenance mode:

  Primary package—A primary package is a main part of the Advanced UI or Suite/Advanced UI installation.

At run time, if all of the primary packages in the installation are absent from the target system, the installation runs as a first-time installation. If any of the primary packages are present on the target system, the installation runs in maintenance mode.

 

Reference link:https://helpnet.flexerasoftware.com/installshield25helplib/helplibrary/StePrimDepend.htm#creatingsuites_3383918860_1051153

 

Thanks,

Jenifer

0 Kudos

So, if one primary package is already installed, there is no way to install die other primary package via Suite Setup?

0 Kudos

Hi @BkSetupDev ,

 

Not via detection condition,since that is as per design.But you can achieve it via changing product version of Suite(As a minor upgrade so that no multiple entries will be there in ARP) from 1.00.0000 to 1.10.0000.In this way you have to take care of maintaining suite versions as well on doing your other package updates.

Please refer below:

InstallShield creates install and maintenance mode conditions automatically in Advanced UI and Suite/Advanced UI projects. The mode conditions are not available for edit within InstallShield; they are shown only in the project file (.issuite). These mode conditions determine whether an Advanced UI or Suite/Advanced UI installation runs in first-time installation mode or in maintenance mode.

Install Mode Condition

The install mode condition is based on the following factors:

  Detection conditions—Part of the install mode condition consists of the detection conditions of all of the primary packages in the Suite/Advanced UI project (or, in an Advanced UI project, the one primary package). If none of the primary packages’ detection conditions evaluate as true (that is, if none of the primary packages are already installed), the detection condition part of the install mode condition is true. If one or more of the primary packages’ detection conditions evaluate as true (that is, at least one of the primary packages is already installed), the detection condition part of the install mode condition is false.
  Suite Installed condition—The other part of the install mode condition consists of a Suite Installed condition, which may trigger the installation to run in first-time installation mode if the same version of the Advanced UI or Suite/Advanced UI installation is absent from the target system. The Suite Installed part of the install mode condition compares the Suite GUID and the version of the Advanced UI or Suite/Advanced UI installation with, if applicable, those of the Advanced UI or Suite/Advanced UI installation that is installed on the target system. If these values are different, the Suite Installed part of the install mode condition suggests that the Advanced UI or Suite/Advanced UI installation is absent, so a first-time installation may result. For more details about the Suite Installed type of condition check, see Detecting Whether a Specific Version of an Advanced UI or Suite/Advanced UI Installation Is Already Installed.

If all of the primary packages’ detection conditions evaluate as false, or if the Suite Installed condition indicates that the Advanced UI or Suite/Advanced UI installation is not already installed, the install mode condition is true, and the installation runs as a first-time installation.

Referral link:https://helpnet.flexerasoftware.com/installshield25helplib/helplibrary/SteModeCond.htm

 

Thanks,

Jenifer

0 Kudos

As I mentioned before: There is just this one version of our suite for now. We packed two MSI setups als packages into this suite. But the two setups are also shipped individually.

So there are systems, where one of the packages may be installed already by the MSI Setup itself – not by any suite. When starting the suite, it detects correctly, that there is no suite installed at all. I can see this in the log.

But it also detects correctly thate there is one package already installed als so the suite starts in Mainenance Mode on a system where no suite was installed ever. This is very irritateing to customers and me.

Is there any solution?

0 Kudos

Hi @BkSetupDev ,

 

No,there is no other way if you dont want to change Suite version.Since that is by design as i had mentioned in my previous reply as per InstallShield's document:

https://helpnet.flexerasoftware.com/installshield25helplib/helplibrary/SteModeCond.htm

My suggestion is to go with Suite minor version change since you are adding changes to primary packages with minor versions(Please ignore if it won't applicable to your product since maintaining suite version might be needed)

Feel free to raise Suite feature enhancement by contacting Flexera support via email:

support@flexerasoftware.com

 

Thanks,

Jenifer

0 Kudos