cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Peter_Kosenko
Level 7

Is Setup.exe for IS 2008 BROKEN?

Has anyone had any experience with Setup.exe mysteriously disappearing in minor upgrade mode when launched on the command line from another installer? But the same minor upgrade works fine when setup.exe is clicked?

Our setup is somewhat complex. We have an installer with a Commit Custom action that launches another installer at the end. The second (database) installer is InstallScript-MSI launched from the LaunchApp with one special property that tells it which other program launched it. Nothing more than that.

setup.exe /v"CALLEDBY=\"SEER-SEM\""

The verbose log does not indicate that there is anything wrong with passing the property "SEER-SEM". So why won't the setup.exe run?

Remember: (1) The second installer works fine as a minor upgrade when you click the setup.exe. (2) It disappears under the same minor upgrade circumstances when Setup.exe is launched from the command line. There is virtually no difference between the two except that a CALLEDBY property is passed, and the verbose log does not indicate that that is any problem.

I guess I'll read the verbose log over night and try to ask more questions later.

But it looks like this might be a gigantic bug in the installshield (accresso) 2008 setup.exe

By the way, did anyone notice that Accresso did not release ANY bug fixes for IS 2008 after it bought Macrovision? It failed to provide support for the software that some people just bought. It went on to create it's own next fully priced version.
Labels (1)
0 Kudos
(6) Replies
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

Can you attach a verbose log of the setup that fails to run (Note if this is an InstallScript MSI, please create a log with /verbose"C:\Path\LogFile.log" to ensure a full log is created)?
0 Kudos
Peter_Kosenko
Level 7

I can explain what was wrong. It was nothing to do with Oleaut32.dll. That was just the last record in the log before the installer exited. There was no error code on exit in the Verbose Log.

The two InstallShield variables MAINTENANCE and IS_MINOR_UPGRADE are deceptive, since they both set at True (1) during BOTH "Maintenance" and Minor Upgrade.

Installer 1 --> launches --> Installer 2

In order to prevent the first installer from launching Uninstall in Installer 2 (in case the user had already installed product 2), I had this condition, which also enaged during Installer 2 Minor Upgrade:

if (MAINTENANCE) then
exit;
endif;

I should have known better. But we are only now in our first Minor Upgrade installer.

I created my own IS_MAINTENANCE property and set it to "1" (with a Set Property custom action) with the conditions:

Installed And Not RESUME And Not Preselected And Not PATCH

Those are the conditions for "Maintenance" (i.e., calling the MaintenanceWelcome dialog) in a Basic MSI project.

The InstallScript MAINTENANCE and IS_MINOR_UPGRADE properties are of dubious value. Both seem to engage as TRUE and FALSE in the same circumstances and hence don't distinguish the two states after which they are named. Maybe they are hold overs from earlier versions of InstallShield.
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

As a point of reference, the InstallScript MAINTENANCE variable is set when the setup.ilg file is present and can be read in C:\Program Files\InstallShield Installation Information\{ProductCode}. This means any InstallScript or InstallScript MSI installations will have the MAINTENANCE variable set to TRUE on all installation scenarios after first time install (including minor upgrades for InstallScript MSI installs, since that is a type of maintenance installation). For InstallScript custom actions, MAINTENANCE is set to true if MsiGetProductInfo does not return an error status.

The IS_MINOR_UPGRADE property is passed by setup.exe when the product code of the MSI package to be launched is already installed on a target machine, but the package code of the MSI being launched is different than the registered package code of the existing installation package. In this case, the REINSTALL and REINSTALLMODE properties are also passed to the MSI package.
0 Kudos
Peter_Kosenko
Level 7

That is good technical information to know, but what people probably want to know is whether they can use MAINTENANCE and IS_MINOR_UPGRADE in, say, Basic MSI InstallScript custom actions and get the appropriate behavior. I would suggest NOT. If you want "Maintenance" only, set your own IS_MAINTENANCE property using the conditions that launch MaintenanceWelcome.

Installed And Not RESUME And Not Preselected And Not PATCH

And if you want Minor Upgrade, reset IS_MINOR_UPGRADE with the conditions that launch the Basic MSI Resume dialog.

Installed And (RESUME Or Preselected) And Not PATCH

I'm not a genius. I cribbed those conditions from the Basic MSI start dialogs for the states (dialogs). Don't ask me why Microsoft made MSI so damned convoluted that the above conditions are actually required.

But they should DISTINGUISH the two modes.
0 Kudos
Peter_Kosenko
Level 7

Well, here I am back again, years later, with a related issue. How do you PREVENT setup.ilg from being created in InstallShield 2008? I have a "stateless" installer conversion from Developer 9.0 to IS2008 that is automatically creating setup.ilg when I don't want it.

I will probably remember the answer when someone gives it, but I can't think of how to prevent the setup.ilg right now.

Thanks

*********

joshstechnij wrote:
As a point of reference, the InstallScript MAINTENANCE variable is set when the setup.ilg file is present and can be read in C:\Program Files\InstallShield Installation Information\{ProductCode}. This means any InstallScript or InstallScript MSI installations will have the MAINTENANCE variable set to TRUE on all installation scenarios after first time install (including minor upgrades for InstallScript MSI installs, since that is a type of maintenance installation). For InstallScript custom actions, MAINTENANCE is set to true if MsiGetProductInfo does not return an error status.

The IS_MINOR_UPGRADE property is passed by setup.exe when the product code of the MSI package to be launched is already installed on a target machine, but the package code of the MSI being launched is different than the registered package code of the existing installation package. In this case, the REINSTALL and REINSTALLMODE properties are also passed to the MSI package.
0 Kudos
adamcox
Level 2

Hello. I am facing this issue where the setup.ilg is being create sometimes. I have no idea why this is intermittent, or why it would create or not create this file, but when present, subsequent install/uninstalls fail.

Any help would be appreciated.

Thanks.
0 Kudos