[wix-users] More Advanced WiX Bootstrapper UI

Alasdair King alasdairking at gmail.com
Thu Aug 27 05:30:17 PDT 2015


Minor aside: I should note that one good reason not to ship "naked"
MSIs over the Internet is that you'll probably want to do this with
the CAB files embedded in the MSI so it's one file. Then, from Windows
7/Windows Installer V5 onwards, Windows will cache your entire MSI
file, so when the user does add/remove later she will see the MSI
signing details in the UAC prompt. Which is nice, but if you have a
200MB installer, you are then taking up 200MB caching the MSI, so your
install is 400MB...
http://blogs.msdn.com/b/heaths/archive/2009/02/02/changes-to-package-caching-in-windows-installer-5-0.aspx


On Sat, Aug 22, 2015 at 9:28 PM, Rob Mensching <rob at firegiant.com> wrote:
> If you are very happy with the built-in MSI experience then Burn is going to look like nothing but overhead for you. That doesn't mean that Burn doesn't provide significant value to those that want/need flexibility beyond feature selection.
>
> Basically, don't knock it until you tried it.
>
> I need to finish my blog post on naked MSIs over the internet. One big issue comes down to source registering in the browser cache.
> _______________________________________________________________
>  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: Saturday, August 22, 2015 11:54 AM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Subject: Re: [wix-users] More Advanced WiX Bootstrapper UI
>
> 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
>
> ____________________________________________________________________
> 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