1

We have an MSI called product.msi with a set of features. To make it easy for the user (and hide the features for other users) we have a commandline to select the visible features in the MSI

Msiexec /I Product.msi featureset = a
Msiexec /I Product.msi Featureset = b

So far I see that we can use the wix bundle to create a Exe installer for each situation and pass the commandline internal

BundleA.exe -> install with commandline featureset=a
BundleB.exe –> install with commandline festureset=b

This works quite well and with the Option „DisplayInternalUI“ we should have Access to the full internal UI of the MSI. Anyway this bundle is a overhead we like to avoid. Is there an alternative to handle this? The current plan „B“ is to compile the wsx file multiple time and change the visibility direct in the featureset. This will result in multiple MSI files.

Markus
  • 373
  • 1
  • 11
  • Is this a product distributed to customers or deployed internally in an enterprise? – Christopher Painter Apr 23 '21 at 22:37
  • Mostly customer sites – Markus Apr 24 '21 at 05:53
  • 2
    [Maybe skim this on the topic of separate versus single setups](https://stackoverflow.com/a/1546916/129130). You would normally use the built-in MSI commands: `ADDLOCAL=FeatureName1,FeatureName2` to specify what MSI features to install rather than something custom. [Feature installation](https://stackoverflow.com/a/49503485/129130), [Feature installation options Properties](https://www.advancedinstaller.com/user-guide/feature-install-props.html). [**MSI customization**](https://stackoverflow.com/a/58232330/129130). – Stein Åsmul Apr 24 '21 at 22:19

1 Answers1

0

The best way I know to bake custom default values on a customer by customer basis without them having to know anything is to build different editions of the msi and distribute accordingly. If it's very specific like an API URI or license key or something you can do this programmatically in your website. Open the database, perform a database update and save then resign the MSI and provide it to that user.

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100