[wix-users] Multiple msps in a burn bundle doesn't patch correctly

Patterson, Brent bcpatterson at xactware.com
Fri Dec 2 14:11:39 PST 2016


Ok, I get it now.  I tried what you guys suggested, I did this in command line:

Msiexec /p Patch1.msp;Patch2.msp /qb /l*v log.txt

It patched with both in one go, and I compared the fresh install of v3 vs the patched version of v3.  Same files are different in this like the burn bundle.  So this looks like it's not a burn issue, but something to do with the patches themselves.

I looked inside the patch log for the files that are not upgraded correctly, but didn't see any errors or anything.  What should I be looking for?

If I do Patch1 first, then Patch2, it's fine.  But if I do both at once like this, some files don't get updated.  Why is that?  What causes this?  You mentioned component rules being broken, but I don't see how?  The process of building patches is like this:

I build a fresh MSI containing all the changes.  This is the "Fresh Install".  Then I use the approach of comparing this and previous MSI to generate MSP, not Pure WiX patch approach.  Theoretically, patching should have the same result as installing fresh, in that all files are the same, and next patch would require the current version to be installed (i.e. 3 does not apply on top of 1, only 2, regardless if 2 is fresh install or patched to 2)

Thanks for your help!

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of David Watson
Sent: Friday, December 2, 2016 11:03 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Multiple msps in a burn bundle doesn't patch correctly

Just test outside of burn that your patches apply correctly, use the msi command line to create a single transaction by specifying all the patches.
e.g.
msiexec /i A:\Example.msi PATCH=msipatch.msp;msipatch2.msp; msipatch3.msp /qb /l*v log.txt

See if you have sequenced everything correctly or if component rules have been broken.


[http://dr0muzwhcp26z.cloudfront.net/static/corporate/SDL_emailLogo.png]<www.sdl.com/>
www.sdl.com


SDL PLC confidential, all rights reserved. If you are not the intended recipient of this mail SDL requests and requires that you delete it without acting upon or copying any of its contents, and we further request that you advise us.

SDL PLC is a public limited company registered in England and Wales. Registered number: 02675207.
Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, UK.

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Patterson, Brent
Sent: 02 December 2016 16:06
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Multiple msps in a burn bundle doesn't patch correctly

I'm not sure what you mean.  Are you saying I should create an exe that launches the MSPs as different processes and test it?  Or launch them from command line?  The problem is that patches work fine outside Burn bundle.  Is there a way of forcing it to not install multiple patches as a single transaction, but instead install each one individually?  Granted, it'd be slower, but that seems to be the only way it'd work correctly.

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Bob Arnson
Sent: Thursday, December 1, 2016 8:18 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Multiple msps in a burn bundle doesn't patch correctly

Burn installs multiple patches to the same product in a single transaction as an optimization. Try the same command line outside Burn. As long as your patches are sound, it's the same as installing them one at a time.

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Patterson, Brent
Sent: Thursday, 1 December, 2016 18:16
To: wix-users at lists.wixtoolset.org
Subject: [wix-users] Multiple msps in a burn bundle doesn't patch correctly

Here's the situation:
We have a burn bundle that includes MspPackage for each MSP that the burn needs to run.  However, if there's more than 1 MSP file, for some reason some files doesn't get updated correctly or there's some kind of error.

For example:
0 to 1, then 1 to 2, then 2 to 3, it all works fine.
0 to 3, with MSPs for 1, 2, and 3 all listed in the burn bundle, it doesn't work correctly.  Most files gets patched, but some doesn't, and there's no errors.  Some cases, it even throws an error about some file not being found in the cab file.

Here's the planned packages part of log:
[6B00:68F8][2016-12-01T16:02:03]i201: Planned package: Patch1.msp, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: Yes, dependency: Register
[6B00:68F8][2016-12-01T16:02:03]i201: Planned package: Patch2.msp, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: Yes, dependency: Register
[6B00:68F8][2016-12-01T16:02:03]i201: Planned package: Patch3.msp, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: Yes, dependency: Register

Here's the applying part of log:
[8478:4CF4][2016-12-01T16:02:05]i306: Applying package: Patch1.msp, target: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, action: Install, path: C:\ProgramData\Package Cache\{E5C600F2-F965-4130-BD18-724910E49FBA}\Patch1.msp;C:\ProgramData\Package Cache\{1E44C902-7D06-467D-B770-54BCA1A5B69B}\Patch2.msp;C:\ProgramData\Package Cache\{614389E9-C477-429F-AF01-39028B26D1B6}\Patch3.msp, arguments: '(null)'
[6B00:68F8][2016-12-01T16:02:13]i319: Applied execute package: Patch1.msp, result: 0x0, restart: None

The patches are sequential minor updates (i.e. 2 requires 1 to be installed before 2 can be installed).  If I run the bundle with only one msp at a time, it works fine.

This is what the chain element looks like in the patch bundle:

             <Chain>
                    <MspPackage SourceFile="{PATH_TO_PATCH_MSP}" Compressed="no" Cache="no" Vital="yes" />
             </Chain>

The MspPackage element is automatically added for each MSP by our internal build utility.  So if there's 3 MSPs, it would look like this:

             <Chain>
                    <MspPackage SourceFile="Patch1.msp" Compressed="no" Cache="no" Vital="yes" />
                    <MspPackage SourceFile="Patch2.msp" Compressed="no" Cache="no" Vital="yes" />
                    <MspPackage SourceFile="Patch3.msp" Compressed="no" Cache="no" Vital="yes" />
             </Chain>

Is there something that I'm doing wrong?  Is it slipstreaming or compressing or something when it shouldn't be?  Note that the MSP files are external, and not embedded into the burn bundle exe.

________________________________

Xactware's opt-in mailing list allows you to receive Xactware News that is of interest to you. Visit my.xactware.com today to join or to update your email preferences!

________________________________

This email is intended solely for the recipient. It may contain privileged, proprietary or confidential information or material. If you are not the intended recipient, please delete this email and any attachments and notify the sender of the error.

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/


____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/


This message has been scanned for malware by Websense. www.websense.com

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/




More information about the wix-users mailing list