[wix-users] Burn bundle only executes last MspPackage in chain
Patterson, Brent
bcpatterson at xactware.com
Thu Aug 18 14:14:24 PDT 2016
I have each patch remove a certain file. Patch 1 removes File A, and Patch 2 removes File B. Only File B was removed, but File A is still there, which tells me that only Patch 2 was applied.
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Rob Mensching
Sent: Thursday, August 18, 2016 3:11 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Burn bundle only executes last MspPackage in chain
It is possible the second msp was slipstreamed with the first for optimal patching speed. Check the resulting MSI to see what was truly applied...
_____________________________________________________________
Short replies here. Complete answers over there: http://www.firegiant.com/
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Patterson, Brent
Sent: Thursday, August 18, 2016 2:04 PM
To: wix-users at lists.wixtoolset.org
Subject: [wix-users] Burn bundle only executes last MspPackage in chain
Now that we've figured out that to have burn patches work, we have to use 29.0.0.X format. But I ran across a new problem. The idea is that we'd use sequential patching, and people can download the MSPs that they need, and not any obsolete ones, and we'd have one patch bundle that executes all of the MSPs that are regularly updated with new MSPs.
For example, let's say there's 5 MSPs, 29.0.0.1 to 29.0.0.5. The person has 29.0.0.3 installed. So we'd automatically download 29.0.0.4 and 29.0.0.5 MSPs, but with a burn bundle that has all of the 1 to 5 MSPs listed. It skips those that doesn't exist, and installs the ones that does. I've figured the skipping part out, and it works correctly. However, it only installs the last patch listed. In this case, the 29.0.0.5 MSP. The 4 is skipped.
Looking at the log doesn't help. It looks identical for both patches (I'm testing with 1 and 2). I wonder if since it's the 4th number, it assumes that MSPs with lower revision numbers are superseded? If so, how do I work around this? Theoretically, I could manually call Process.Start from inside bootstrapper for all except last MSP, but that defeats the purpose of having a burn bundle.
This is what the bundle looks like (We have an utility that adds an entry for each MSP, and "REPLACE_MSP_NAME" is a variable that the bootstrapper sets when it does a scan for MSP files:
<Chain>
<MspPackage SourceFile="{PATH_TO_PATCH_MSP}" Compressed="no" Cache="no" Vital="yes" InstallCondition="{REPLACE_MSP_NAME}="True"" />
</Chain>
Here is the relevant log:
Detect part:
[47AC:1270][2016-08-18T14:48:47]i100: Detect begin, 2 packages
[47AC:1270][2016-08-18T14:48:47]i102: Detected related bundle: {acc3238e-f865-4bf7-894a-3ead7785406c}, type: Dependent, scope: PerMachine, version: 29.0.0.0, operation: None
[47AC:1270][2016-08-18T14:48:47]i106: Calculating patch applicability for target product code: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, context: Machine
[47AC:1270][2016-08-18T14:48:47]i101: Detected package: Xactimate1.msp, state: Absent, cached: None
[47AC:1270][2016-08-18T14:48:47]i105: Detected package: Xactimate1.msp target: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, state: Absent
[47AC:1270][2016-08-18T14:48:47]i101: Detected package: Xactimate2.msp, state: Absent, cached: None
[47AC:1270][2016-08-18T14:48:47]i105: Detected package: Xactimate2.msp target: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, state: Absent
[47AC:1270][2016-08-18T14:48:47]i199: Detect complete, result: 0x0
Plan part (note that it adds rollback stuff for 1, not 2):
[47AC:1270][2016-08-18T14:48:50]i200: Plan begin, 2 packages, action: Install
[47AC:1270][2016-08-18T14:48:50]i052: Condition 'xactimate1_Exists="True"' evaluates to true.
[47AC:1270][2016-08-18T14:48:50]i000: Setting string variable 'WixBundleLog_Xactimate1.msp' to value 'C:\Users\i65780\AppData\Local\Temp\Xactimate_20160818144846_{945774F5-9F8E-46F7-9F91-FEDD93FE9B93}_000_Xactimate1.msp.log'
[47AC:1270][2016-08-18T14:48:50]i000: Setting string variable 'WixBundleRollbackLog_Xactimate1.msp' to value 'C:\Users\i65780\AppData\Local\Temp\Xactimate_20160818144846_{945774F5-9F8E-46F7-9F91-FEDD93FE9B93}_000_Xactimate1.msp_rollback.log'
[47AC:1270][2016-08-18T14:48:50]i052: Condition 'xactimate2_Exists="True"' evaluates to true.
[47AC:1270][2016-08-18T14:48:50]i201: Planned package: Xactimate1.msp, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: Yes, dependency: Register
[47AC:1270][2016-08-18T14:48:50]i201: Planned package: Xactimate2.msp, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: Yes, dependency: Register
[47AC:1270][2016-08-18T14:48:50]i207: Planned related bundle: {acc3238e-f865-4bf7-894a-3ead7785406c}, type: Dependent, default requested: None, ba requested: None, execute: None, rollback: None, dependency: None
[47AC:1270][2016-08-18T14:48:50]i299: Plan complete, result: 0x0
Apply part (Note it says applied 1, but nothing about 2, and it's 2 that was actually applied, 1 was never applied):
[5A2C:7118][2016-08-18T14:48:52]i000: Caching bundle from: 'C:\Users\XXX\AppData\Local\Temp\{78E47AC2-0C23-4D74-ACF4-B7AD7B4FCAE8}\.be\XiWrapperPatch.exe' to: 'C:\ProgramData\Package Cache\{9bb7b370-2135-4070-9ac0-5a7b599f1f89}\XiWrapperPatch.exe'
[5A2C:7118][2016-08-18T14:48:52]i320: Registering bundle dependency provider: {9bb7b370-2135-4070-9ac0-5a7b599f1f89}, version: 29.0.0.2
[5A2C:7118][2016-08-18T14:48:52]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9bb7b370-2135-4070-9ac0-5a7b599f1f89}, resume: Active, restart initiated: No, disable resume: No
[47AC:38C4][2016-08-18T14:48:52]i338: Acquiring package: Xactimate1.msp, payload: Xactimate1.msp, copy from: C:\Temp\29.0 (0.2)\Patches\Xactimate1.msp
[47AC:38C4][2016-08-18T14:48:52]i000: Setting string variable 'WixBundleLastUsedSource' to value 'C:\Temp\29.0 (0.2)\Patches\'
[5A2C:1CF4][2016-08-18T14:48:52]i305: Verified acquired payload: Xactimate1.msp at path: C:\ProgramData\Package Cache\.unverified\Xactimate1.msp, moving to: C:\ProgramData\Package Cache\{015EF720-876E-4FE7-B718-C04C449C5B82}\Xactimate1.msp.
[47AC:38C4][2016-08-18T14:48:52]i338: Acquiring package: Xactimate2.msp, payload: Xactimate2.msp, copy from: C:\Temp\29.0 (0.2)\Patches\Xactimate2.msp
[5A2C:1CF4][2016-08-18T14:48:52]i305: Verified acquired payload: Xactimate2.msp at path: C:\ProgramData\Package Cache\.unverified\Xactimate2.msp, moving to: C:\ProgramData\Package Cache\{23179A16-37AC-49A1-8851-4AA442304A9A}\Xactimate2.msp.
[5A2C:7118][2016-08-18T14:48:52]i323: Registering package dependency provider: {015EF720-876E-4FE7-B718-C04C449C5B82}, version: (null), package: Xactimate1.msp
[5A2C:7118][2016-08-18T14:48:52]i306: Applying package: Xactimate1.msp, target: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, action: Install, path: C:\ProgramData\Package Cache\{23179A16-37AC-49A1-8851-4AA442304A9A}\Xactimate2.msp;C:\ProgramData\Package Cache\{015EF720-876E-4FE7-B718-C04C449C5B82}\Xactimate1.msp, arguments: '(null)'
[47AC:1270][2016-08-18T14:48:54]i319: Applied execute package: Xactimate1.msp, result: 0x0, restart: None
[5A2C:7118][2016-08-18T14:48:54]i325: Registering dependency: {9bb7b370-2135-4070-9ac0-5a7b599f1f89} on package provider: {015EF720-876E-4FE7-B718-C04C449C5B82}, package: Xactimate1.msp
[5A2C:7118][2016-08-18T14:48:54]i323: Registering package dependency provider: {23179A16-37AC-49A1-8851-4AA442304A9A}, version: (null), package: Xactimate2.msp
[5A2C:7118][2016-08-18T14:48:54]i325: Registering dependency: {9bb7b370-2135-4070-9ac0-5a7b599f1f89} on package provider: {23179A16-37AC-49A1-8851-4AA442304A9A}, package: Xactimate2.msp
[5A2C:7118][2016-08-18T14:48:54]i351: Removing cached package: Xactimate1.msp, from path: C:\ProgramData\Package Cache\{015EF720-876E-4FE7-B718-C04C449C5B82}\
[5A2C:7118][2016-08-18T14:48:54]i351: Removing cached package: Xactimate2.msp, from path: C:\ProgramData\Package Cache\{23179A16-37AC-49A1-8851-4AA442304A9A}\
[5A2C:7118][2016-08-18T14:48:54]i372: Session end, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9bb7b370-2135-4070-9ac0-5a7b599f1f89}, resume: ARP, restart: None, disable resume: No
[5A2C:7118][2016-08-18T14:48:54]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9bb7b370-2135-4070-9ac0-5a7b599f1f89}, resume: ARP, restart initiated: No, disable resume: No
[47AC:1270][2016-08-18T14:48:54]i399: Apply complete, result: 0x0, restart: None, ba requested restart: No
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
________________________________
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.
More information about the wix-users
mailing list