This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Changing Feature condition
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 23, 2008
04:14 AM
Changing Feature condition
Hi,
I have a problem with BasicMSI project: Some features have conditions for example APPSERVER=1, APPSERVER - custom Windows Installer property. I need to set the value of this property during installation user interface before features installed and depending on property value feature must be installed or not. Is it possible to do using feature conditions or is there another way to do it?
I have a problem with BasicMSI project: Some features have conditions for example APPSERVER=1, APPSERVER - custom Windows Installer property. I need to set the value of this property during installation user interface before features installed and depending on property value feature must be installed or not. Is it possible to do using feature conditions or is there another way to do it?
(5) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 23, 2008
09:04 AM
Feature conditions are evaluated when CostFinalize runs; from a dialog box, perhaps look into the Remove and AddLocal control events to remove and add features from the selection list?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 23, 2008
10:25 AM
I had a similar requirement of removing features based on user input. I had a lot of hassles trying to get the feature conditions to work, so I used the Remove action in the dialog control events. That has been working very well for me.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 26, 2008
07:42 AM
Thank you for replies, I try to call function MsiDoAction(hMSI,"CostFinalize") it's good for functions without subfeatures, but if feature has subfeatues without any conditins, they are not installed, their size is zero in component list.Is it possible to do anything with subfeatures?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 27, 2008
05:35 AM
It is impossile to add addlocal and remove control events for every needed features because some features with conditions added in project by ISWi interface and then project is built automatically. Conditions looks like PROPERTY = VALUE. PROPERTY is BasicMSI Project propety, its value assigned after parsing licence file during user interface running. as I understand it is impossible to refresh features conditions. Now I have a question: is it possible to write an installscript function, which checks all features condition strings and features with false conditions add to Remove property (How to get root feature, process feature tree) ?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 27, 2008
07:31 AM
First you cannot call "CostFinalize" that is a built in action called automatically.
Second a sub feature cannot be installed if the parent feature is not installed. If you need this to happen, you have got the project design wrong, the sub feature needs to be at the same level as the original parent feature.
The answers already given are the correct ones.
If you need to collect answers from the user to condition out features, then you need to condition them out, by adding Events to the Next button action in a dialog behaviour view (Event=Remove, Argument=, Condition=(PropertyName=Value)). You may add this to the dialog that collects the user selections or at the ReadyToInstall dialog or at the CustomSetup dialog.
If you need to condition out features during a silent install for example, then you use the feature conditions (Level=0, Condition=(PropertyName=Value)) - this you can use for any method that populates the Property values prior to "CostFinalize" eg Command line parameters, .ini file, system search or a CA scheduled to run before "CostFinalize".
If you have a lot of features and conditions, then you have to add a lot of entries.
Second a sub feature cannot be installed if the parent feature is not installed. If you need this to happen, you have got the project design wrong, the sub feature needs to be at the same level as the original parent feature.
The answers already given are the correct ones.
If you need to collect answers from the user to condition out features, then you need to condition them out, by adding Events to the Next button action in a dialog behaviour view (Event=Remove, Argument=
If you need to condition out features during a silent install for example, then you use the feature conditions (Level=0, Condition=(PropertyName=Value)) - this you can use for any method that populates the Property values prior to "CostFinalize" eg Command line parameters, .ini file, system search or a CA scheduled to run before "CostFinalize".
If you have a lot of features and conditions, then you have to add a lot of entries.