2

We are using Wix to build msi for our software. We have some components (plugins) to be implemented to the target machine. The plugins are different from one client to another. What we want to be able to do is to create a standard build and modify the feature list in the msi package. Is there a way to change the feature list dynamically from a custom action? (e.g. read the available plugins from a custom action and add some entries into the msi feature list accordingly)?

Any comments, advice, ideas are very much appreciated.

Dan
  • 63
  • 1
  • 1
  • 7
  • Do you want to include all features in the MSI and install them conditionally? Or you want to include features in the MSI dynamically at build time? – Cosmin Jun 14 '11 at 15:07
  • At the time of building MSI, I don't know what to include. I want to put the plugins into a folder which is outside of the MSI package, then use a CA to read the details of the plugins stored in this folder (e.g. name, description, files associated, etc.) and add them into the feature list at the time of installation. So, I don't what to make a new build for different customers. Hope this makes sense. Many thanks. – Dan Jun 14 '11 at 16:02
  • You didn't really answer my questions. Do you want to include all features in the MSI and condition them during install? Like a master setup file. Or you want the package to contain only certain features? – Cosmin Jun 14 '11 at 19:17
  • Thanks very much Cosmin Pirvu. I think Christopher's answer below is what I can do. – Dan Jun 16 '11 at 10:00

1 Answers1

3

I've done a trick in the past where you build the MSI with external CABs ( 1 per feature ) and then use a custom action to verify that the CABs exist. If they don't exist you hide the feature. This way you can just build the installer once but then ship it to customers with different feature sets.

BTW, InstallAware has supports this story natively I believe.

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