0
votes

I am using Wix 3.8 I want to have a single installer UI which will present four applications.Based on user selection the particular application has to be installed/ uninstalled /upgraded.

So I added four msis in a custom bootstrapper bundle. In the Custom UI we show all four application names and based on the user selection I set bundle variable value. Install condition attribute is set to this bundle variable. Also based on the user selection package list will be updated to have only the relevant package(s) . In this way install is working fine. Install add only the bundle entry in the Add /Remove Programs; and not individual entry for each msi.

I am also able to manage uninstalling a package based on the user selection. The issue is while uninstalling one msi package it removes the entry of the bundle from Add/Remove Programs list. Now how do I uninstall other packages?

The behavior what I need is I want to retain the bundle entry in the Add/remove Programs list ; Once the last package is also uninstalled I want to remove the entry from Add /Remove Programs List. Please advice me how to achieve this?

1

1 Answers

-1
votes

I'm going to suggest a different way to approach this problem because it seems to me, and I may be way off base here, that you are implementing something using a bootstrapper when you may only need a single MSI that uses a FeatureTree.

A feature tree can list various categories of things to install or not install. For example, it might ask if you want to install:

  1. Framework only?
  2. Framework and Tools?
  3. Only Tools?

And if the user chooses Only Tools and later decides they want Framework, they can go to Programs and Features, click Change and then they'll be able to select the Framework feature from the Feature Tree.

And if they want to uninstall one thing or everything all together, they can do that too.

If you have control over the four MSIs that you mention, you could change them to be Wix Library projects instead. That would allow you to keep developing them separately, by different teams, but have them all referenced in one MSI project.