cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
andrewcardy
Level 3

Patch transforms applied in a bewildering order

Hi all,

This doesn't seem to be causing an issue as yet, but it's something I really want to understand.

Basically, we have four versions of our product: 1.0 (2.6.0.0), 1.0.1 (2.6.1.0), 1.1.1 (2.6.3.0) and 1.1.2 (2.6.4.0). We're just testing the full and patch installers for 1.1.2.

The odd things we're seeing is that when applying a patch from 1.0 -> 1.1.2, the log for the installer shows that it chooses to use the 1.0.1 -> 1.1.2 patch transform first, which to me is silly as there is a transform from 1.0 -> 1.1.2 it can use. The log is below:

[CODE]SequencePatches starts. Product code: {A9206E66-68A6-4A64-8ECA-F96D2635FB33}, Product version: 2.6.0.0, Upgrade code: {58142252-3B0E-44CA-99EC-F9FB3C4D976E}, Product language 1033
MSI (c) (A4:18) [14:11:53:235]: PATCH SEQUENCER: verifying the applicability of minor upgrade patch C:\DOCUME~1\Testuser\LOCALS~1\Temp\{3E3C7709-FF95-48AF-8836-5D62996F0FD4}\[productname]112enu_x86.msp against product code: {A9206E66-68A6-4A64-8ECA-F96D2635FB33}, product version: 2.6.0.0, product language 1033 and upgrade code: {58142252-3B0E-44CA-99EC-F9FB3C4D976E}
MSI (c) (A4:18) [14:11:53:235]: PATCH SEQUENCER: minor upgrade patch C:\DOCUME~1\Testuser\LOCALS~1\Temp\{3E3C7709-FF95-48AF-8836-5D62996F0FD4}\[productname]112enu_x86.msp is applicable.
MSI (c) (A4:18) [14:11:53:245]: SequencePatches returns success.
MSI (c) (A4:18) [14:11:53:245]: Final Patch Application Order:
MSI (c) (A4:18) [14:11:53:245]: {1721243D-5A87-4972-9226-E87EE0B87A08} - C:\DOCUME~1\Testuser\LOCALS~1\Temp\{3E3C7709-FF95-48AF-8836-5D62996F0FD4}\[productname]112enu_x86.msp
MSI (c) (A4:18) [14:11:53:245]: {1721243D-5A87-4972-9226-E87EE0B87A08} - C:\DOCUME~1\Testuser\LOCALS~1\Temp\{3E3C7709-FF95-48AF-8836-5D62996F0FD4}\[productname]112enu_x86.msp
MSI (c) (A4:18) [14:11:53:245]: Machine policy value 'DisablePatch' is 0
MSI (c) (A4:18) [14:11:53:245]: Machine policy value 'AllowLockdownPatch' is 0
MSI (c) (A4:18) [14:11:53:245]: Machine policy value 'DisableLUAPatching' is 0
MSI (c) (A4:18) [14:11:53:245]: Machine policy value 'DisableFlyWeightPatching' is 0
MSI (c) (A4:18) [14:11:53:245]: Turning off patch optimization. {1721243D-5A87-4972-9226-E87EE0B87A08} patch is not authored to support it.
MSI (c) (A4:18) [14:11:53:245]: Looking for patch transform: 101enuTo112enu

... More stuff ...

MSI (c) (A4:18) [14:11:53:265]: Disallowing uninstallation of patch {1721243D-5A87-4972-9226-E87EE0B87A08} because it adds new entries to table CreateFolder
MSI (c) (A4:18) [14:11:53:265]: Note: 1: 2205 2: 3: PatchPackage
MSI (c) (A4:18) [14:11:53:265]: TRANSFORM: 'PatchPackage' table is missing or empty. No pre-transform fixup necessary.
MSI (c) (A4:18) [14:11:53:265]: TRANSFORM: Applying regular transform to database.

... More stuff ...

MSI (c) (A4:18) [14:11:53:265]: Looking for patch transform: 10enuTo112enu
DEBUG: Error 2748: Transform 10enuTo112enu invalid for package C:\WINDOWS\Installer\882d.msi. Expected product version <= 2.6.0.0, found product version 2.6.4.0.
1: 2748 2: 10enuTo112enu 3: C:\WINDOWS\Installer\882d.msi 4: 2.6.0.0 5: 2.6.4.0
MSI (c) (A4:18) [14:11:53:265]: Skipping validation for patch transform #10enuTo112enu. Will not apply because previous transform was invalid
MSI (c) (A4:18) [14:11:53:265]: Looking for patch transform: 111enuTo112enu
DEBUG: Error 2748: Transform 111enuTo112enu invalid for package C:\WINDOWS\Installer\882d.msi. Expected product version <= 2.6.3.0, found product version 2.6.4.0.
1: 2748 2: 111enuTo112enu 3: C:\WINDOWS\Installer\882d.msi 4: 2.6.3.0 5: 2.6.4.0
MSI (c) (A4:18) [14:11:53:265]: Skipping validation for patch transform #111enuTo112enu. Will not apply because previous transform was invalid[/CODE]

So why does it choose to apply the wrong transform first? I'm guessing it applies it anyway because when it gets to the correct transform, it knows the product version has been updated to 2.6.4.0. I noticed that in the patch designer under the previous setups folder, the order is indeed 1.0.1, 1.0, 1.1.1. Surely this isn't determining the order that Windows Installer runs the patch transforms?!
Labels (1)
0 Kudos

(1) Reply
andrewcardy
Level 3

I've found a solution to the problem, you can find it here: http://stackoverflow.com/questions/11102953/why-does-windows-installer-install-my-patch-transforms-in-the-wrong-order (Sorry for the cross post)
0 Kudos