[wix-users] Bundles: Where to start?

Phill Hogland phill.hogland at rimage.com
Fri Oct 7 14:07:55 PDT 2016

>>>From what I can tell, the bare bones WiX Standard Bootstrapper Application really is pretty limited in what you get out of the box and doesn't come close to the functionality I'm looking for.

I believe that all of the functionality you mentioned (particularly downloading msi only if needed) is available using WixStdBA (and probably a BAFunctions.dll project, see the burn/samples folder in the wix source).   But eventually you will probably want to implement a mba.

I had very large InstallScript projects which I transitioned to wix, and I found the approach of creating many small focused MSIs (without any UI) and driving them with a Burn BA, and all packages staged for web download to be the best approach for us.  I use the MajorUpgrade approach and have not had to do any patching, as I can rebuild the bundle with a updated MSI (with updates to a single app) and deploy that more efficiently than creating patches, and more simply.   I was doing this with WixStdBA and then I moved to a mba.  Burn only downloads the packages needed for a particular configuration.

The best example of a mba that I found was the WixBA in the wix source.  It is a MVVM project.  I use a single mba for all of my bundles, by setting the Bunde/@Tag to inform the mba which bundle is running.  In the mba my Model is generalized for all of my bundles and I use derived classes for specific bundle behavior.  Using IoC the BundleTag is used to inject the correct derived class.  Similarly the BundleTag is used to select and present the correct View, (which in some bundles includes options for the user to select different features).  The related properties are used in the VM to plan which MSI packages to install, etc.  Back when I was using the WixStdBA in this manner I would set Engine variables which were then used in MsiPackage/@InstallCondition.  So there are multiple approaches which are possible.

Neil's site at https://wixextba.codeplex.com/  was the most helpful when I was using WixStdBA and implementing feature selection.

The wix source, particularly the WixBA was the most helpful in understanding the use of atom syndication (even in the context of using the WixStdBA) and also for creating a mba.  After I created a mba I refactored it to use and IoC and make it a subclassable solution for multiple product releases.

While Burn has handlers for planing MSI features I have stayed away from that (and MSI UIs) based on reports that those approaches are more complex to maintain.  Packaging each app or driver as a separate headless MSI and keeping the user interaction in Burn has worked well for my many bundles, which covers everything from desktop apps, web apps, drivers, and low level services.

From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Tyler Gustafson <tgustafson at solacom.com>
Sent: Friday, October 7, 2016 3:23:38 PM
To: wix-users at lists.wixtoolset.org
Subject: [wix-users] Bundles: Where to start?

Just when I think I might have gotten near the top of the WiX learning curve I decide to check out bundles.

My company currently has a bunch of MSIs which they install one after another using a .bat file but I'm new here and I'm trying to fix things. Step one was to clean up all the screwy things their installers were doing and step two was to pave the way for patches.

I originally thought I might do away with the multiple MSIs and just make one installer with features to represent each of their current projects but apparently they had something similar in the past and it was too large for them to want to copy over the network. I figured delta patches might get around that issue but apparently most of their upgrade cases are old customers jumping major versions.

Now I'm looking at bundles and I would specifically like to create something using downloadable MSIs which can start by asking the user which features they would like and then only download the corresponding MSIs. I would also like the bootstrapper to have "change" functionality to allow the user to modify which "features" they have installed. This could potentially involve downloading a new MSI which they didn't install the first time through.

>From what I can tell, the bare bones WiX Standard Bootstrapper Application really is pretty limited in what you get out of the box and doesn't come close to the functionality I'm looking for.

I am wondering if anyone out there has a hidden gem of a tutorial or some source code to get me started in the right direction. So far the best tutorial I've come across is 3 years old but is at least something:

Thanks for reading!

WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/

More information about the wix-users mailing list