[wix-users] More Advanced WiX Bootstrapper UI

Matt Hauck matthauck at gmail.com
Tue Aug 4 10:57:32 PDT 2015


Hello!

I have a question about how people are using / expected to use the WiX
Bootstrapper, in particular with reference to the UI component. It seems to
me to be incomplete as it stands for anything beyond bundling
prerequisites.

(Background: I have used WiX in the past for making MSIs and really really
like it. I am working on a project now that I would like to move off of
NSIS into WiX and am getting hung up on something I hope someone here can
help out with.)

As far as I can tell, the wix standard bootstrapper
<http://wixtoolset.org/documentation/manual/v3/bundle/wixstdba/> provides
only one main screen, perhaps with an options page as well (that I only
found looking at the code, not in the docs; may have missed it). It
provides the ability to customize/theme this page, but does not allow the
insertion of arbitrary pages, define custom actions to call between these
pages, etc., as one can do in a WiX MSI UI.

I believe this is incomplete, as it does not provide the opportunity to
gather the right amount of information needed to decide which components
need to be installed. (caveat: with a standard user experience. It may be
possible with the options page, but an options page is not something we can
expect our users to click on when important decisions need to be made on
that page)

It seems to me the only reason someone would want to generate a bundled /
bootstrapped application is because there are multiple things one needs to
install. These boil down to two basic categories: prerequisites and
optional features.

In the case one only cares about bundling prerequisites, I suppose the
current state of things works just fine for most people. If all you need to
do is make sure .NET and C++ runtimes are installed, then the bootstrapper
UI just needs to display the license and then say "Go!", and then the MSI
can add its own UI layer down below to provide further advanced
configuration. Perhaps this is the 80% use case.

However, I think there is also a significant use case for using a wix
bundle for installing optional features. For example, we may want to bundle
SQL Server Express. This is obviously not something we want to just always
install. We want to allow the user to specify their own SQL Server if they
want or select the "Please install it for me" checkbox. Therefore, this has
to happen at the bootstrap layer, not at our MSI layer, requiring a more
flexible bootstrap UI with multiple pages.

So here is the question: *What is recommended in this scenario?* It is a
bit unfortunate that the only valid option left for me is to entirely roll
my own UI application using WPF or something like that (which may end up
bringing in .NET dependency, which we are trying to avoid). This is a
significant enough hurdle that it will meet with sufficient push back from
the team that we will probably not go with WiX. This is sad, because WiX is
so much better than NSIS in my opinion on other fronts.

Hopefully that is not too wordy. Please let me know if I have misunderstood
anything and what guidance you would provide.

Thanks.

-- 
Matt


More information about the wix-users mailing list