The "Dynamic linking" feature where Component Ids change with every build makes 
it impossible to patch.  In fact, I think the only option available to you 
using that methodology for creating MSI packages is major upgrade.  Also, I 
assume you don't have any shared files in the "big zip file" because those 
would not be reference counted correctly.

It's interesting you use NSIS for the patches.  Does the interaction between 
NSIS patches plus MSI repair/uninstall work out well?

I'm not up on the intimate details of patching but there are new features in 
the WiX toolset that enable you to create patches that target subsets of your 
setup authoring.  That enables you to build independent patches for different 
areas of your installation.  However, when you need to patch the same file more 
than once, the patch ordering definitely becomes an issue.  I'm not sure this 
advanced functionality is available unless you use the WiX toolset to create 
the MSI (I think a lot of information comes from the .wixpdb), but it *may* be 
possible using admin images.

Ultimately, I believe that you are correct that maintaining Component Guids is 
going to be the hardest problem to tackle when creating your patch system.  I 
know Bob had to tackle this exact problem in his day job so he may have 
suggestions of things to try or avoid.  I also know that tallow/heat in their 
current form will not help you because they don't correctly assign Guids.  I 
haven't tried paraffin but on my initial readings it looked like it was trying 
to do the right thing... but I don't know if it works in this sort of scenario.

Note, these issues for Component Guid are a recognized pain point in the 
Windows Installer. I'm still working on a way to solve the problem of automatic 
Guid generation.


Finally, the "philosophy" that each developer should maintain their portion of 
setup is my personal philosophy.  The WiX toolset has features to enable such 
distributed setup development but that doesn't mean you have to use them.


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ene 
Stelian-Bogdan
Sent: Monday, May 19, 2008 09:41
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Integrate WiX in our process

Hello,

Here's the way our process currently looks like:
- We build and ship the main product installer as an MSI, Installshield
based project. I am talking about a 900MB product, comprising of about
15.000 files and 2300 folders, so we use Installshield's "Dynamic
linking" feature extensively. (Basically, you point to a folder, and
components will be generated on the fly at build time, one component per
directory; the ComponentIDs will of course change on every rebuild)
Needless to say, we don't subscribe to the MSI/WiX philosophy of having
developers maintain the installer components; I receive one big zip
file, and must deliver an installer. While I have nothing against
changing this state of facts, I don't think it will change soon.
- When new chips are introduced, we must deliver a "Service pack" that
will offer compiling/debugging support for it. The patch will generally
add new files to the installation, and sometimes update existing files,
always in a backwards-compatible manner. Since customers will download
only the patch offering support for the device they are working with,
these patches can be applied more or less in any order. Currently, these
patches are built using the NullSoft installer.

As a first step, I'd like to get rid of NullSoft, and replace it with
WiX; on the long run, a full transition to WiX could be an interesting
option.
I don't understand how I can use MSI's own patching support: it seems to
impose a linear evolution of the product, with a well defined sequence
of applying patches - and by all means, do correct me if I'm wrong.
My first impulse is to integrate something like tallow/paraffin in the
patch build system, and generate service packs as standalone installers
with 1 component/file (performance of patches is not really critical,
they are quite small). Coupled with Installshield's dynamic linking,
this is bound to break the component rules in a systematic manner. Also,
there's the open issue of uninstalling these patches when the main
product is uninstalled.

Can you provide some pointers on the best way to proceed ?

Thank you !

--
Stelian ENE
Installer Engineer, DevTech
Freescale Semiconductor
Work: +40 21 305 2064
Mobile: +40 728 052 499

This e-mail, and any associated attachments have been classified as:
[X] Public
[ ] Freescale Semiconductor Internal Use Only
[ ] Freescale Semiconductor Confidential Proprietary

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to