Windows Installer uses an API that is now called PatchAPI for the actual
"delta" compression. That API (along with its more modern replacement, which
Windows Installer does not natively support) is documented on this page:
http://msdn.microsoft.com/library/bb417345.aspx. One aspect of the algorithm
used by both PatchWiz and Pyro is that if the delta produced by PatchAPI is
not smaller than the original file the file will "auto-promote" to become a
so-called "whole file patch", which is what you would get (for that file,
anyhow) if you had not specified "-delta" on Pyro's commandline.

Some aspects of that API are the following:

1. Maximal compression can only be achieved by supplying your PDB files. Use
the SymbolPath elements in your sources to provide the PDBs to PatchAPI to
achieve this.

2. PatchAPI is internally optimized for x86 binaries. Files for other
processors (including managed code) and non-code files (such as your zip
files) don't compress as well as they possibly could. I have seen some text
files compress quite well, and other text files not well at all, using
PatchAPI. However, Windows Installer does not natively support MSDelta (or
any other delta compression scheme).

3. Since your files are larger than 8 MB, you may want to see if setting
Patch\@OptimizePatchSizeForLargeFiles to "yes" makes any difference.

4. Experience seems to indicate that mismatches between mspatcha.dll and
mspatchc.dll may (rarely?) lead to instances of MSPs being built that can't
be applied for specific files. More investigation is needed here.

5. It's always possible that there's still some mistake(s) we are making in
our use of PatchAPI (incorrect options, misunderstanding of return codes,
etc.).

I've long wanted, as a side project, to write a WiX extension that would
allow replacing Windows Installer's use of PatchAPI with "plugins" that
would, for instance, use MSDelta (or other alternatives?) instead, but I
haven't been able to spend the time yet to flush it out (does anyone want to
fund that?). To me it seems quite doable.

-Blair

-----Original Message-----
From: Steve Allen [mailto:st...@red-redemption.com] 
Sent: Wednesday, January 05, 2011 2:44 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Pyro not creating deltas despite using the -delta flag

Hi,

I'm using Wix version 3.0.5419.0.

The project I'm working on is a fairly plain single featured installer. 
The bulk of the installer is made up of several large (30MB+) zip files. 
I've found that the patches between versions end up very large as a 
result, and have determined that the zip files are not being delta'd (by 
inspecting the MSPs with Orca). Experiments showed that reducing the 
size of the zips to around 25MB and below dramatically decreased the 
size of the overall patch (from approx 50MB in total with large zip 
files that aren't delta'd, to <2MB with correct deltas). This problem is 
made worse when targetting multiple versions as the patches scale 
linearly with the number of versions - a three version patch is bigger 
than the original installer! We would prefer not to hide this problem by 
reducing the sizes of the zips, as (a) the problem could return and (b) 
there would be a significant amount of work involved in reworking the 
way the application understands its data.

Is there a known problem with Pyro and delta patching? Is it likely to 
be a problem with Windows Installer rather than Wix?

Any help would be much appreciated.

Steve Allen

----------------------------------------------------------------------------
--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment,
and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to