I\'ve been shoved into a DevOps position at work with very little knowledge about InstallShield or what I\'m doing. Everything I\'ve learned I\'ve learned by doing and readi
Short Version:
Feature F
might be set as a required feature for Feature 1
(and possibly others). Required Features
value for Feature 1
.Feature 1
- then look at the Required Features
value. If Feature F
is listed there, then that would cause the behavior you see.Error, Error - The Matrix's Got You :-): I wrote a long answer on how feature selection can be affected by many things for Basic MSI projects
, but reading your question again I am almost convinced this is an Installscript MSI project
and not a Basic MSI project
at all, and the reason is the feature dialog behavior that you describe.
Installscript MSI: The top left of the Installshield application window will reveal the project type. It will say something like: "My Project Name-1 - Installshield [InstallScript MSI Project]
. Could you please verify what it says? (the last part - inside the brackets - is the key). The handling of features is quite different in the two project types. Installscript MSI projects
features custom Installshield dialogs (Win32 dialogs), versus the standard Windows Installer dialogs of Basic MSI projects
(defined in tables). I dislike Installscript MSI projects intensely - I find them buggy, but they do have some nice features. I would not use them though. Subjective opinion. Basic MSI projects are standard MSI files and much better for corporate deployment.
"Required Features": When you view the features view in Installshield for an Installscript MSI project
, you have more options available than for a Basic MSI project
. The Required Features
setting in particular wraps a lot of functionality to allow features to be interdependent of each other - something that has to be implemented by yourself in Basic MSI projects in quite a different way. This field is the key to the feature selection behavior you are seeing - I am pretty sure of that. See below for suggested approach forward.
Logging: In order to enable logging, please try to open your project, then go to Build => Settings... => MSI Log File
, now click All Error Messages
and Verbose Output
and type a file name in the Log File
box. Click OK
. Now try to build and run your project.
Summary:
Feature view
and check the Required Features
value for each feature in sequence.Installscript view
to see if there is any custom code there related to the GUI? And you might want to check the Custom Actions & Sequences
view as well - to check for any custom logic implemented in other ways (VBScripts, PowerShell, JavaScript, etc...).Custom Actions: Based on the available information (0 conditions), I would assume one or more custom actions are used to implement the feature logic you describe above. You should be able to find the custom action code in the project's Installscript view
I would presume? (with an associated custom action entry in the Custom actions view
).
It is also possible that Installscript is not used, but the logic is implemented in some other language (VBScript
, C++
, JavaScript
, PowerShell
, etc...) - in which case you should go directly to the Custom actions view
instead and look for suspects. Source could be embedded in the custom action (scrips), or stored elsewhere (always the case for C++).
Logging: In order to enable logging, please try to open your project, then go to Build => Settings... => MSI Log File
, now click All Error Messages
and Verbose Output
and type a file name in the Log File
box. Click OK
. Now try to build and run your project. Here is how to enable logging using msiexec.exe (outside Installshield). Concrete example; the logging command in its simplest form:
msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log
UPDATE: I found this sample in Installshield's KDB (Q208877) (KDB). It uses some very odd feture selection techniques - please see the actual article for details. There is a downloadable ISM file. A slightly better approach in my view is here. Your setup could be using some of these techniques.
There is a whole list of mechanisms which can affect feature selection, and it is shown below. The below is primarily for Basic MSI projects, for Installscript MSI projects there are even more mechanisms available - largely Installscript functions. Before the list, some important tidbits:
And now the list. To my knowledge feature selection can be affected by (at least) the below mechanisms:
msiexec.exe
Command Line
msiexec.exe /i MySetup.msi ADDLOCAL="Core,English,German,SDK"
msidbFeatureAttributesFollowParent
).CostInitialize
. See link directly below.Some Links: