[wix-users] More Advanced WiX Bootstrapper UI

Alasdair King alasdairking at gmail.com
Sat Aug 22 11:54:18 PDT 2015


Well, for me, the "logical distribution unit" is the MSI package /
product. I'm not quite sure what else it would be. Is it something
like this in Burn:

Program A has optional components B and C.
Each is built as a separate MSI.
I build a custom BA to handle the UI for selection of B and C, and
Burn installs them all as a package?

I guess my non-Burn system would be to define Features for B and C in
Program A, and put the files for each in their own CAB files to
facilitate least-bytes-downloading. Then I can use standard Windows
Installer mechanisms (msiexec, or the object model) to
service/interact with Program A. If I use Burn, everything is
obfuscated behind the Burn packager, so it all gets more complicated,
and I end up writing lots of UI code. See, I'm lazy: I just want a
working, effective installer that looks right to end users, and
WiX-built MSI files plus a simple bootstrapper is much simpler than
writing a whole new .Net XAML UI for each product...

With WiX and not Burn, I'm also very happy to ship installers that
look and behave exactly as end users think Windows Installer packages
look, whatever the 1998 aesthetics. Not surprising the user is key.
And it's all I18Nised for me! Huge win on the UI front there.

OK, I'll go away again now. Just one thing, though: what's wrong with
shipping "naked" MSI files? I build my WiX MSIs against Windows
Installer 3.1, which is supported by every version of Windows back to
Windows XP SP2 (and V5 properties like MSIFASTINSTALL still work) so I
know they'll run. I write my programs with RegFree COM and
installation in mind, so they are basically just XCOPY. So why not
just ship the MSI? I'm always keen to provide a good experience to my
users, so do let me know where this might fall down!

Best wishes,
Alasdair


On Fri, Aug 21, 2015 at 5:07 PM, Rob Mensching <rob at firegiant.com> wrote:
> The wixstdba is fairly barebones. It is simple for simple installations and designed to point the way for more complex requirements. All the features of WiX Extended Bootstrapper Application were contributed to wixstdba in WiX v3.8 (I think).
>
> Burn is designed to take multiple installation packages and represent them as a single entity (single progress bar, single ARP entry). That allows you to break up your installation into more logical distribution units. Breaking your installation into more logical units can get you wins in downloading and servicing. Plus Burn does a bunch of things to increase chance an MSI will install successfully (download resume, retry installations) and update successfully (package cache is a huge boon).
>
> Oh, and you can write custom BAs that can look very pretty (MSI UI is limited).
>
> If you have a single small MSI and just need to install the .NET Framework and don't care if the user sees multiple installation dialogs (or are willing to do the work to unify the progress bars) then Burn may look a bit like overkill. There are still advantages to using it for the smallest of MSIs (e.g. never ship naked MSIs over the internet) but it does take more work (especially if you need more extensive UI than provided by the default wixstdba).
>
> _______________________________________________________________
>  FireGiant  |  Dedicated support for the WiX toolset  |  http://www.firegiant.com/
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Alasdair King
> Sent: Friday, August 21, 2015 5:17 AM
> To: wix-users at lists.wixtoolset.org
> Subject: [wix-users] More Advanced WiX Bootstrapper UI
>
> Matt Hauk:
> "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."
>
> There isn't a bootstrapper in WiX:
> http://robmensching.com/blog/posts/2012/6/25/b-is-for-bundle-and-thats-good-enough-for-me/
>
> The referenced setupexe/setupbld was removed a couple of versions back, and that was ONLY a bootstrapper - install pre-reqs, run MSI
>
> I write bootstrappers in VB6 because I don't know enough C++ and VB6 doesn't have any dependencies so I know it will definitely run. They then launch MSIs built with WiX. This is particularly important because WiX has complete translations for the de-facto Windows Installer dialogs in many languages, saving me much work. And the UI looks like users expect from an installer, so that's great.
>
> I would characterise the situation as "Use WiX for building your MSIs, because it's incredibly good at that: use something else for bootstrapping, because Burn is not a bootstrapper".
>
> However, you might find the "WiX Extended Bootstrapper Application"
> does what you need, since it adds lots of the UI features that you want to Burn: I tried it out, and it looked plausible, but I was still spending more time wrestling with Burn than it would take to do a simple bootstrapper.
>
> https://wixextba.codeplex.com
>
> I'd be very interested to hear other thoughts: I'm sure Burn is the same high quality as the rest of the WiX system, but it's never made sense to me, so I'd love to see anything on using it.
>
> --
> Alasdair King
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/



-- 
Alasdair King



More information about the wix-users mailing list