I finally found the barely documented MinorUpdateTargetRTM='1' attribute
you can add to the PatchMetadata element to make my 1.00 to 1.02
scenario work.


John
Wintellect
http://www.wintellect.com
877-968-5528


>-----Original Message-----
>From: [EMAIL PROTECTED] [mailto:wix-users-
>[EMAIL PROTECTED] On Behalf Of John Robbins
>Sent: Sunday, December 09, 2007 6:35 PM
>To: wix-users@lists.sourceforge.net
>Subject: [WiX-users] Patching Pain
>
>Hello,
>
>Using WiX 2.0, I'm trying to set up a patching scheme where if the user
>has installed a 1.00 version of the product they can apply patches they
>come out for that version. However, I'm missing something big because I
>can only get a single patch to work and no subsequent patches as they
>fail with error 1642.
>
>Scenario:
>       - The user has installed 1.00.
>       - A 1.01 patch is released and they apply it.
>       - A 1.02 patch that contains the 1.01 fixes is released and the
>user can apply it.
>       - A 1.03 patch that contains both 1.01 and 1.02 fixes is
>released, they *skip* that patch.
>       - A 1.04 patch that sums up 1.01-1.03 fixes is released, and
>when applied, gets them all fixes up through 1.04.
>
>       In other words, I want the patches to be cumulative so whenever
>the client feels like upgrading as patches are released, the install
>accounts for whatever patch level version they have on the machine and
>brings them to the latest and greatest. If I create separate patches
for
>each version, they can all be properly applied in order, but I want a
>single patch file that will
>
>Here's what I've done:
>       1. Created the 1.00, 1.01, and 1.02 full installs with the same
>GUIDs for product codes and upgrade codes. The full installs properly
>upgrade the existing older installations.
>       2. Using the steps from the tutorial
>(http://www.tramontana.co.hu/wix/lesson4.php), I've created two .WXS
>files, Patch1.0-1.01.wxs and Patch1.0-1.02.wxs.
>       3. Key parts of Patch1.0-1.01.wxs:
>
>  <PatchCreation Id='F3F065D3-45CE-4B24-8759-925608FCE97F'
>                 AllowMajorVersionMismatches='no'
>                 AllowProductCodeMismatches='no'
>                 CleanWorkingFolder='no'
>                 WholeFilesOnly='no'>
>       ...
>      <UpgradeImage Id='Patch_fixed'
>                    src='.\ADMIN1.01\Version1.01.msi'>
>        <TargetImage Id='Patch_error'
>                     Order='1'
>                     IgnoreMissingFiles='no'
>                     SourceFile='.\ADMIN1.0\Version1.00.msi' />
>      </UpgradeImage>
>    </Family>
>    <TargetProductCode Id='549A9B54-40DD-46DC-A960-5F76BB921BFF' />
>       ...
>
>       4. Doing the tutorial steps, I created the .MSP and it properly
>updates from 1.00 to 1.01.
>       5. Key parts of Patch1.0-1.02.wxs (notice that I'm building the
>patch from 1.00 sources and the 1.02 sources):
>
>  <PatchCreation Id='A5B7EB6F-427A-485C-A9AE-D5B033CF05B3'
>                 AllowMajorVersionMismatches='no'
>                 AllowProductCodeMismatches='no'
>                 CleanWorkingFolder='no'
>                 WholeFilesOnly='no'>
>       ...
>      <UpgradeImage Id='Patch_fixed'
>                    src='.\ADMIN1.02\Version1.02.msi'>
>        <TargetImage Id='Patch_error'
>                     Order='1'
>                     IgnoreMissingFiles='no'
>                     SourceFile='.\ADMIN1.0\Version1.00.msi'/>
>      </UpgradeImage>
>    </Family>
>
>    <TargetProductCode Id='549A9B54-40DD-46DC-A960-5F76BB921BFF' />
>    <ReplacePatch Id ='F3F065D3-45CE-4B24-8759-925608FCE97F'/>
>       ...
>
>       6. When applying the 1.02 patch to the updated 1.01 the log
>reports:
>MSI (c) (F4:F4) [17:24:39:546]: Final Patch Application Order:
>MSI (c) (F4:F4) [17:24:39:546]: {F3F065D3-45CE-4B24-8759-925608FCE97F}
-
>
>MSI (c) (F4:F4) [17:24:39:546]: Other Patches:
>MSI (c) (F4:F4) [17:24:39:546]: Unknown\Absent:
>{A5B7EB6F-427A-485C-A9AE-D5B033CF05B3} -
>C:\Junk\Cruft\patching\Test\Patch1.0-1.02.msp
>The upgrade cannot be installed by the Windows Installer service
because
>the program to be upgraded may be missing, or the upgrade may update a
>different version of the program. Verify that the program to be
upgraded
>exists on your computer and that you have the correct upgrade.
>C:\Windows\Installer\bea84f0.msi
>MSI (c) (F4:F4) [17:24:39:547]: Product: Foobar 1.0 - Update
>'{A5B7EB6F-427A-485C-A9AE-D5B033CF05B3}' could not be installed. Error
>code 1642. Additional information is available in the log file
>C:\Junk\Cruft\patching\Test\log.log.
>MSI (c) (F4:F4) [17:24:39:548]: Windows Installer installed an update.
>Product Name: Foobar 1.0. Product Version: 1.0.0. Product Language:
>1033. Update Name: {A5B7EB6F-427A-485C-A9AE-D5B033CF05B3}. Installation
>success or error status: 1642.
>MSI (c) (F4:F4) [17:24:39:548]: Product: Foobar 1.0 -- Installation
>failed.
>MSI (c) (F4:F4) [17:24:39:549]: Windows Installer installed the
product.
>Product Name: Foobar 1.0. Product Version: 1.0.0. Product Language:
>1033. Installation success or error status: 1642.
>
>Any help greatly appreciated.
>
>John
>Wintellect
>http://www.wintellect.com
>877-968-5528
>
>
>-----------------------------------------------------------------------
-
>-
>SF.Net email is sponsored by:
>Check out the new SourceForge.net Marketplace.
>It's the best place to buy or sell services for
>just about anything Open Source.
>http://sourceforge.net/services/buy/index.php
>_______________________________________________
>WiX-users mailing list
>WiX-users@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/wix-users

-------------------------------------------------------------------------
SF.Net email is sponsored by: 
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to