Feature selection in msi

with ADDLOCAL=feature1 property, we are able to add a feature through commandline.

But it is overriding the default install feature list ,which will be there if no ADDLOCAL property is provided.

Let's say , by default f1,f2,f3 are selected among {f1,f2,f3,f4,f5,f6}.
When we pass no property like "ADDLOCAL" then f1,f2,f3 will be selected.
If we pass ADDLOCAL=f4 then f4 is getting selected and f1,f2,f3 are unchecked.

If we pass ADDLOCAL=ALL then all the features will be selected,and we are unchecking again with REMOVE property.

Is there any simple way, so that when pass f4 to it, then f4 will be added to the default list "f1,f2,f3" instead of removing that default list.

0 Comments   [ + ] Show comments

Answers (5)

Posted by: anonymous_9363 5 years ago
Red Belt
In a word,no, not from the command line.

Create a transform (MST) instead, using it to set the feature level for the features you require. You can obviously set other properties using it, too.

  • Thanks for the reply VBScab.

    But for current scenario, I can't edit the msi file as this is raised as issue in production.The previous packager missed to add this feature and it is silent instalaltion.If any minor changes then we can chage it like commandline changes.But for file content changes we need to create a new package.

    So I think I need to pass all the deafault feature list also along with the present feature to ADDLOCAL.If no such option is available.And also multiple packages are having similar issue.

    Is there any possbility through VBScript to alter this?? - ur00361883 5 years ago
Posted by: anonymous_9363 5 years ago
Red Belt
You won't be changing anything, as a transform is external to the MSI.

If you're fixing existing installations (it's always nice to get the full story AFTER replying, of course...), there's nothing wrong with using ADDLOCAL: any existing, installed features will remain in place.

If it were me, I'd create a script which uninstalls whatever went previously and then reinstalls "properly". That one script then caters for both existing installations and new ones.
Posted by: ur00361883 5 years ago
Black Belt
This is the resolution comments I got from Flexera support team:

Unfortunately with InstallShield Express there is no built in functionality to enable one feature like you are describing from the command line. You can pass all of the features that you wish to install with ADDLOCAL (ex: ADDLOCAL=f1,f2,f3,f4) as that property dictates which features will be installed locally.

ADDLOCAL property:

With InstallShield Professional and Premier you would have the ability to set an INSTALLLEVEL for the features and assign a condition to those features to change their install level. When doing this you could pass a property from the command line which would make the feature condition true and enable the specific feature.
Posted by: anonymous_9363 5 years ago
Red Belt
1. For existing installations, adding the missing feature with ADDLOCAL won't affect the features already installed (unless you're still passing a REMOVE value as well - in which case, don't!

2. For new installations, use ADDLOCAL with all of the required features listed.

3. If you're serious about packaging, get your employer to spring for a proper authoring tool, instead of messing about with "not quite the full ticket" software. Yes, it's expensive but how much time have you wasted pursuing this so far?
Posted by: Badger 5 years ago
Red Belt

The only way you can do what you are asking is if you have a really well thought out INSTALLLEVEL property.

I would follow what the others are saying and use MSTs to enable the appropriate Features at install. Or Create as many install commands as you need to install f1, f1f3, f1f2f3,f1f4,f1f3f4 etc
I have in the past used the command line to ADD features to existing installations.

Also, I have had some horrible vendor MSIs that use a CustomAction to configure feature install states, quite a pain.

This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ