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