[wix-users] Stumped with burn patch bundle
Patterson, Brent
bcpatterson at xactware.com
Mon Aug 15 13:12:53 PDT 2016
I remembered that I worked on small updates a year ago, and it was able to apply two patches. So I tested the process again. I did the exact same steps that I did for minor updates, but with two differences:
Instead of using 29.X.0.0, I used 29.0.0.X (so 1st patch is 29.0.0.1)
Instead of building patches off of last install build, both patches are based off of 29.0 (cumulative), with 29.2 containing 29.1 changes.
Guess what? It worked flawlessly! I was able to apply 29.2 on top of 29.1 that was applied on top of 29.0. I looked at the logs, and there were two detections logged for 2nd patch as opposed to one when doing minor update. It read like this:
[03AC:3B80][2016-08-15T14:05:28]i101: Detected package: Xactimate2.msp, state: Absent, cached: None
[03AC:3B80][2016-08-15T14:05:28]i105: Detected package: Xactimate2.msp target: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, state: Absent <---- This is missing in Minor Update approach.
We want to avoid creating large patches that include every changes ever, so we want to go with minor update route to keep patch sizes small. This is critical for our process. Should I try and build the patch with pure WiX approach? Or should this have worked, and is a bug with WiX burn?
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Robert Goodridge
Sent: Sunday, August 14, 2016 4:32 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Stumped with burn patch bundle
'In the Installer Bundle, it has "RelatedBundle" element with Action as "Detect". In both of the patch bundles, they have "RelatedBundle" element with Action as "Patch". I read in your link that major updates need to have related bundles set, but what about minor updates? If I don't specify related bundle, how would the uninstaller know to remove the patch bundles as well as the main bundle?'
I only stated in that link what I know and have seen occur. I would expect that any Bundle which is required to REPLACE another Bundle would require RelatedBundle set to Detect too.
Regarding your question on patch construction, I would have thought that if your patch installs perfectly fine by itself, then its built correctly. The only experience I have with patches is with Supersede="no", but again, your patch installs perfectly fine outside of the bundle, so you would have thought that its not about that flag either.
Warm regards
Rob Goodridge | CloudArchitect | LANSA Product Centre
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Patterson, Brent
Sent: Sunday, 14 August 2016 3:07 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Stumped with burn patch bundle
Is it possible that the method that I use for creating MSPs could break this? I'm using the approach where it "installs" two MSIs (old and new), and compare differences, generating a MSP from that. I tried the pure WiX approach for creating patches, but it just didn't work for me.
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Patterson, Brent
Sent: Friday, August 12, 2016 9:09 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Stumped with burn patch bundle
Updating to 3.10.3 didn't help. Here's some more log, with renamed MSPs to clear up what's going on. Note that in log for patch 2, it is missing one "Detected package" compared to patch 1's log. As a result, "execute" for plan action is "None" instead of "Install" like in patch 1. Is this a detection issue with WiX? Or am I setting up the patch bundle wrong?
Patch one:
[3E64:6620][2016-08-12T09:02:06]i100: Detect begin, 1 packages
[3E64:6620][2016-08-12T09:02:06]i102: Detected related bundle: {e25e44f8-aa31-4995-bb1e-d304d1675009}, type: Dependent, scope: PerMachine, version: 29.0.5156.35288, operation: None
[3E64:6620][2016-08-12T09:02:06]i106: Calculating patch applicability for target product code: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, context: Machine
[3E64:6620][2016-08-12T09:02:06]i101: Detected package: Xactimate1.msp, state: Absent, cached: None
[3E64:6620][2016-08-12T09:02:06]i105: Detected package: Xactimate1.msp target: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, state: Absent
[3E64:6620][2016-08-12T09:02:06]i199: Detect complete, result: 0x0
[3E64:6620][2016-08-12T09:02:08]i200: Plan begin, 1 packages, action: Install
[3E64:6620][2016-08-12T09:02:08]i000: Setting string variable 'WixBundleLog_Xactimate1.msp' to value 'C:\Users\xxx\AppData\Local\Temp\Xactimate_20160812090205_{945774F5-9F8E-46F7-9F91-FEDD93FE9B93}_000_Xactimate1.msp.log'
[3E64:6620][2016-08-12T09:02:08]i000: Setting string variable 'WixBundleRollbackLog_Xactimate1.msp' to value 'C:\Users\xxx\AppData\Local\Temp\Xactimate_20160812090205_{945774F5-9F8E-46F7-9F91-FEDD93FE9B93}_000_Xactimate1.msp_rollback.log'
[3E64:6620][2016-08-12T09:02:08]i201: Planned package: Xactimate1.msp, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register
[3E64:6620][2016-08-12T09:02:08]i207: Planned related bundle: {e25e44f8-aa31-4995-bb1e-d304d1675009}, type: Dependent, default requested: None, ba requested: None, execute: None, rollback: None, dependency: None
[3E64:6620][2016-08-12T09:02:08]i299: Plan complete, result: 0x0
[3E64:6620][2016-08-12T09:02:08]i300: Apply begin
Patch two:
[927C:7E68][2016-08-12T09:02:24]i100: Detect begin, 1 packages
[927C:7E68][2016-08-12T09:02:24]i102: Detected related bundle: {e25e44f8-aa31-4995-bb1e-d304d1675009}, type: Dependent, scope: PerMachine, version: 29.0.5156.35288, operation: None
[927C:7E68][2016-08-12T09:02:24]i106: Calculating patch applicability for target product code: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, context: Machine
[927C:7E68][2016-08-12T09:02:24]i101: Detected package: Xactimate2.msp, state: Absent, cached: None
[927C:7E68][2016-08-12T09:02:24]i199: Detect complete, result: 0x0
[927C:7E68][2016-08-12T09:02:26]i200: Plan begin, 1 packages, action: Install
[927C:7E68][2016-08-12T09:02:26]i201: Planned package: Xactimate2.msp, state: Absent, default requested: Present, ba requested: Present, execute: None, rollback: None, cache: No, uncache: No, dependency: None
[927C:7E68][2016-08-12T09:02:26]i207: Planned related bundle: {e25e44f8-aa31-4995-bb1e-d304d1675009}, type: Dependent, default requested: None, ba requested: None, execute: None, rollback: None, dependency: None
[927C:7E68][2016-08-12T09:02:26]i299: Plan complete, result: 0x0
[927C:7E68][2016-08-12T09:02:26]i300: Apply begin
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Patterson, Brent
Sent: Friday, August 12, 2016 8:04 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Stumped with burn patch bundle
Tried unique names for patch MSPs, no luck. I started using unique upgrade code, and it resolved the "uninstall previous bundle" issue, but still doesn't apply 2nd patch. What I'm seeing is this:
Install with Installer Bundle - No problem. Both bundle and MSI are installed, and bundle shows up in list of programs and features, with msi hidden as intended.
Install with Patch 1 - No problem, both bundle and MSP are installed.
Install with Patch 2 - Only the bundle is installed, but the MSP isn't. Manually running the MSP installs without any issues.
In the Installer Bundle, it has "RelatedBundle" element with Action as "Detect". In both of the patch bundles, they have "RelatedBundle" element with Action as "Patch". I read in your link that major updates need to have related bundles set, but what about minor updates? If I don't specify related bundle, how would the uninstaller know to remove the patch bundles as well as the main bundle?
Thanks again. I'm using WiX Toolset 3.10.2.2516. I see there's 3.10.3 available. I will download that and see if it resolves this.
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Robert Goodridge
Sent: Thursday, August 11, 2016 6:53 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Stumped with burn patch bundle
Give the patch a unique name and give it a go?
Failing that can you provide your Bundle element and RelatedBundle elements for each of the three bundles - msi and the two msp?
If I'm reading your pseudo elements below, I think you are not using a unique UpgradeCode for each of your patches. That may cause your behaviour.
Here is a post about the rules I've come up with that may be relevant: http://stackoverflow.com/questions/38840748/wix-bundle-patches-for-1-0-0-are-not-removed-from-programs-features-when-bund/38840749#38840749
The particular relevant paragraph is this:
In Patch Bundles the Upgrade Code must be unique, unrelated to any other GUID used in any bundle. "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC" in the example.
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Patterson, Brent
Sent: Friday, 12 August 2016 4:17 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Stumped with burn patch bundle
Another thing, the MSP file for both patch bundles has the same name, but different version (29.1 and 29.2). Do I need to have an unique name for each MSP file? I.e. 29.1 should have "Patch1.msp" and 29.2 have "Patch2.msp"? I'm trying to understand why it's not applying the MSP file. It looks like everything should work. I have different upgrade codes to prevent uninstalling of previous bundles. Or is this a bug with the burn bundle?
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Patterson, Brent
Sent: Wednesday, August 10, 2016 10:52 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Stumped with burn patch bundle
Yes, the MSP can be installed outside the bundle. This is sequential patching, meaning 29.0 cannot upgrade to 29.2 without upgrading to 29.1 first.
I looked at the detect part, and there's one entry in one log that doesn't exist in another:
[3914:6FD0][2016-08-10T10:00:18]i101: Detected package: Xactimate.msp, state: Absent, cached: None
[3914:6FD0][2016-08-10T10:00:18]i105: Detected package: Xactimate.msp target: {945774F5-9F8E-46F7-9F91-FEDD93FE9B93}, state: Absent
[3914:6FD0][2016-08-10T10:00:18]i199: Detect complete, result: 0x0
Vs
[6434:65AC][2016-08-10T10:00:32]i101: Detected package: Xactimate.msp, state: Absent, cached: None
[6434:65AC][2016-08-10T10:00:32]i199: Detect complete, result: 0x0
It seems like the non-working patch didn't detect something it should?
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Sean Hall
Sent: Wednesday, August 10, 2016 10:45 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Stumped with burn patch bundle
There should something in the Detect part of the log about the applicability of the patch, it looks like the engine doesn't think it can be applied. Can the MSP be installed outside of the bundle?
On Wed, Aug 10, 2016 at 11:25 AM, Patterson, Brent <bcpatterson at xactware.com
> wrote:
> Thanks, that was a step closer to what I wanted! Both now are
> identical in the log file for that step. However, 2nd patch still
> didn't apply. So I took a look at log again to see what's the
> difference. I found this for Planned Packages:
>
> Working patch (29.1):
> [3914:6FD0][2016-08-10T10:00:20]i200: Plan begin, 1 packages, action:
> Install
> [3914:6FD0][2016-08-10T10:00:20]i000: Setting string variable
> 'WixBundleLog_Xactimate.msp' to value 'C:\Users\XXX\AppData\Local\
> Temp\Xactimate_20160810100017_{945774F5-9F8E-46F7-9F91-
> FEDD93FE9B93}_000_Xactimate.msp.log'
> [3914:6FD0][2016-08-10T10:00:20]i000: Setting string variable
> 'WixBundleRollbackLog_Xactimate.msp' to value
> 'C:\Users\XXX\AppData\Local\
> Temp\Xactimate_20160810100017_{945774F5-9F8E-46F7-9F91-
> FEDD93FE9B93}_000_Xactimate.msp_rollback.log'
> [3914:6FD0][2016-08-10T10:00:20]i201: Planned package: Xactimate.msp,
> state: Absent, default requested: Present, ba requested: Present, execute:
> Install, rollback: Uninstall, cache: Yes, uncache: No, dependency:
> Register
> [3914:6FD0][2016-08-10T10:00:20]i207: Planned related bundle:
> {fdbf68e4-a49c-4481-9ecc-a605ed27a46f}, type: Dependent, default
> requested: None, ba requested: None, execute: None, rollback: None,
> dependency: None
> [3914:6FD0][2016-08-10T10:00:20]i299: Plan complete, result: 0x0
>
> Broken Patch (29.2)
> [6434:65AC][2016-08-10T10:00:33]i200: Plan begin, 1 packages, action:
> Install
> [6434:65AC][2016-08-10T10:00:33]i201: Planned package: Xactimate.msp,
> state: Absent, default requested: Present, ba requested: Present, execute:
> None, rollback: None, cache: No, uncache: No, dependency: None
> [6434:65AC][2016-08-10T10:00:33]i207: Planned related bundle:
> {fdbf68e4-a49c-4481-9ecc-a605ed27a46f}, type: Dependent, default
> requested: None, ba requested: None, execute: None, rollback: None,
> dependency: None
> [6434:65AC][2016-08-10T10:00:33]i299: Plan complete, result: 0x0
>
> I see that the differences are setting of string variables, and in
> planned package, it says "Install" for execute in working patch, but
> "None" in broken patch. Also "Uninstall" for rollback vs "None", and
> "Yes" for cache vs "No". Is this something that's controlled by the
> burn bundle? Or is there something else I need to tweak in the XML?
>
> Thanks again, I really appreciate your help!
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> Behalf Of Sean Hall
> Sent: Wednesday, August 10, 2016 9:42 AM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Subject: Re: [wix-users] Stumped with burn patch bundle
>
> 29.2 is trying to uninstall (MajorUpgrade) 29.1 because you gave them
> the same upgrade code.
>
> On Wed, Aug 10, 2016 at 10:32 AM, Patterson, Brent <
> bcpatterson at xactware.com
> > wrote:
>
> > I'm trying to figure out why the 2nd patch in this sequence doesn't
> > apply patch (29.0 -> 29.1 -> 29.2). The first patch applies
> > correctly, but 2nd patch installs the bundle (I can see this in list
> > of installed updates), but does not apply the patch. I compared the
> > logs of two patches, and found this:
> >
> > [208C:127C][2016-08-09T17:04:44]i102: Detected related bundle:
> > {fdbf68e4-a49c-4481-9ecc-a605ed27a46f}, type: Dependent, scope:
> > PerMachine, version: 29.0.0.0, operation: None (Patch that worked)
> > Vs
> > [2DDC:4BD8][2016-08-09T17:08:26]i102: Detected related bundle:
> > {3629e15b-9b0f-4d14-a656-eaab9caaf711}, type: Upgrade, scope:
> > PerMachine,
> > version: 29.1.0.0, operation: MajorUpgrade (Patch that didn't work)
> >
> > The difference is "Dependent" vs "Upgrade" type, and "None" vs
> > "MajorUpgrade" operation. How do I tell the patch bundle to just
> > apply the MSP? It seems to try and uninstall the previous bundle
> > (which fails since I don't allow uninstallation of patches).
> >
> > This is the patch bundle's XML (I have an utility that replaces
> > values inside brackets { } ):
> >
> > <?xml version="1.0" encoding="UTF-8"?> <Wix
> > xmlns="http://schemas.microsoft.com/wix/2006/wi">
> > <Bundle
> > Name="{REPLACE_BUNDLE_NAME}"
> > Version="{REPLACE_VERSION}"
> > Manufacturer="{REPLACE_COMPANY_NAME}"
> > UpgradeCode="XXX" (It is the same for both patches)
> > ParentName="{REPLACE_BUNDLE_NAME}"
> > DisableModify="yes"
> > DisableRemove="yes"
> > Condition="VersionNT >= v6.0"
> > IconSourceFile="{REPLACE_ICON_PATH}"
> > >
> > <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
> > (snipped payloads for brevity)
> > <Payload SourceFile="C:\Program Files\WiX Toolset
> v3.10\SDK\Microsoft.
> > Deployment.WindowsInstaller.dll"/>
> > </BootstrapperApplicationRef>
> >
> > <WixVariable Id="WixMbaPrereqLicenseUrl" Value=""/>
> > <WixVariable Id="WixMbaPrereqPackageId" Value=""/>
> >
> > <RelatedBundle Id="XXX" Action="Patch"/> (It is same for both
> > patches and the install bundle, but install bundle has "detect"
> > instead of "patch")
> >
> > <Chain>
> > <MspPackage SourceFile="{PATH_TO_PATCH_MSP}"
> > Compressed="yes" />
> > </Chain>
> > </Bundle>
> > </Wix>
> >
> > ________________________________
> >
> > 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/
>
> ________________________________
>
> 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/
________________________________
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/
____________________________________________________________________
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