After trying several variations I ended where you have.  With common components 
in a single MSI that goes with several bundles.  

-----Original Message-----
From: Nicolás Alvarez [mailto:nicolas.alva...@gmail.com] 
Sent: Wednesday, October 02, 2013 12:29 PM
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] Download of shared components

Windows Installer was created in the days of physical software distribution and 
small hard disks. Physical software distribution means you can and should put 
all prerequisites in the disc. It doesn't matter if you ship a dozen different 
products and all of them "waste"
100MB with the exact same shared DLLs. Small hard disks means that if you 
install those dozen applications, you wouldn't want all of them installing 
their own 100MB copy of the DLLs, you would want them installed once and shared 
across the products.

The way shared components work in Windows Installer fits this perfectly. Each 
MSI carries its own copy of the shared components, but that doesn't matter 
because they are on different discs. When you install the products, the shared 
components are only installed once on the user's hard disk.

We're now in the age of digital distribution, where requirements change. I 
think trying to avoid duplicated hard disk usage is still important, but it's 
even more important to reduce bandwidth use. If I have a dozen applications 
which share components, and the user wants to install even two of the apps, 
ideally he should only download the shared components *once*.

The only way I know to do this in Windows Installer is not to use multiple 
products sharing components, but instead to put the shared stuff in its own 
MSI. Then each application installer will have a bootstrapper that checks if 
the shared-stuff product is already installed, and if it's not, it downloads 
the shared msi and installs it. Yhen the next application won't need to.

Is there a different way to do this? For example, is it possible to have one 
msi per application with shared components, but put the shared files in a 
different non-embedded cabinet, and have the bootstrapper only download this 
cabinet if needed?

--
Nicolás

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register > 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to