[wix-users] Multiple msps in a burn bundle doesn't patch correctly
Bob Arnson
bob at firegiant.com
Thu Dec 8 20:48:24 PST 2016
Patch 1 is superseded.
> MSI (s) (E8:24) [14:49:59:285]: Superseded: {E5C600F2-F965-4130-BD18-724910E49FBA} - C:\Temp\Beta\Beta 29.0.2.57\Patches\Patch1.msp
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Patterson, Brent
Sent: Monday, 5 December, 2016 13:07
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
Looking at the log, here's what I see:
Patch 1 and 2 are verified against software restriction policy, and both passes due to both being signed.
Patch 1 and 2 are checked for applicability, and both are found to be applicable.
MSI (s) (E8:24) [14:49:59:285]: Final Patch Application Order:
MSI (s) (E8:24) [14:49:59:285]: {E5C600F2-F965-4130-BD18-724910E49FBA} - C:\Temp\Beta\Beta 29.0.2.57\Patches\Patch1.msp
MSI (s) (E8:24) [14:49:59:285]: {1E44C902-7D06-467D-B770-54BCA1A5B69B} - C:\Temp\Beta\Beta 29.0.2.57\Patches\Patch2.msp
MSI (s) (E8:24) [14:49:59:285]: Other Patches:
MSI (s) (E8:24) [14:49:59:285]: Superseded: {E5C600F2-F965-4130-BD18-724910E49FBA} - C:\Temp\Beta\Beta 29.0.2.57\Patches\Patch1.msp
I did a search for the file IDs used by the files that didn't get patched correctly. There weren't there in the log file. Other files are present though in the log. So I uninstalled and repeated the process, but with one patch at a time. Now the files are present in Log 1 from Patch 1, but not present in Log 2 from Patch 2.
I compared those files in the individual patching against other files to see if there's anything different. There's none that I can see from the logging. They have the exact same amount of File ID recurrence in all places of the first log, and there's no differences besides file name. However, in Patch 2's log, there's no mention of the files, which I assume is due to the versions not changing in Patch 2, but did change in Patch 1.
So basically, if doing patches one at a time, it works. But if multiple patches are run, for some reason some files are left out. The files DO have a newer version number in Patch 1, but are of same version from 1 to 2.
So, if a file is updated in one patch, but not in the next patch, it gets skipped completely when doing multiple patches in a single transaction?
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of David Watson
Sent: Saturday, December 3, 2016 4:16 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
Check the log :)
In this scenario WI will load the msi and the patches and determine applicability and order. It will apply the transforms that it thinks apply to the base msi and then run the installation.
Check to see that the patches are indeed being selected to be applied and in which order, you may also be able to load multiple patches into orca or Insted to see what transforms are applied.
Look at the things that are wrong, is a file missing or just not upgraded to the right version - check the log for these particular items for clues and see how that component has changed over time.
Also it may be appropriate for a clean install of V3 to be different to a patched version if you only include certain things in the patch family.
[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 22:12
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
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/
____________________________________________________________________
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/
More information about the wix-users
mailing list