Hi All,

I have created a product MSI which is versioned 6.100.0 . I have then
successfully created a minor update which installs as 6.100.1. Below is the
patch.wxs file I use to accomplish this:

============================

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
  <Patch AllowRemoval="yes" Classification="Update" Comments="Patch for
MyProduct 6.100.1" Description="Update for MyProduct 6.100.1"
DisplayName="MyProduct 6.100.1 Software Patch" Manufacturer="MyCompany"
MoreInfoURL="http://www.mycompany.com";>
    <Media Id="1000" Cabinet="SEGPatch.cab">
      <PatchBaseline Id="SEGPatch" />
    </Media>
    <PatchFamily Id="SEGPatchFamily" Version="6.100.1"
ProductCode="604F30E1-35F2-4E34-AA21-3E83CDE863E1" Supersede="yes">
      <ComponentRef Id="CMP_ProjectElements.Forms.dll" />
    </PatchFamily>
  </Patch>
</Wix>


==============================

Everything is updated as expected when I apply this patch (MSP). I now want
to create a second patch, containing an additional file. This will be
version 6.100.2, and I plan on making this cumulative, so that one could
apply 6.100.2 and get the content of 6.100.1 as well. Below is the
patch.wxs file for my 6.100.2 update:

==============================

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
  <Patch AllowRemoval="yes" Classification="Update" Comments="Patch for
MyProduct 6.100.2" Description="Update for MyProduct 6.100.2"
DisplayName="MyProduct 6.100.2 Software Patch" Manufacturer="MyCompany"
MoreInfoURL="http://www.mycompany.com";>
    <Media Id="1001" Cabinet="SEGPatch.cab">
      <PatchBaseline Id="SEGPatch" />
    </Media>
    <PatchFamily Id="SEGPatchFamily" Version="6.100.2"
ProductCode="604F30E1-35F2-4E34-AA21-3E83CDE863E1" Supersede="yes">
      <ComponentRef Id="CMP_ProjectElements.dll" />
      <ComponentRef Id="CMP_ProjectElements.Forms.dll" />
    </PatchFamily>
  </Patch>
</Wix>

==============================

The patch builds as expected, and will apply to 6.100.0 without issue. The
problem arises when I attempt to go from 6.100.1 -> 6.100.2. I get the
below error in my MSI.LOG file, and the patch is not applied:

==============================

MSI (c) (60:50) [11:22:56:067]: SOFTWARE RESTRICTION POLICY:
C:\Public\Hotfix\EG\eguide_2.msp has a digital signature
MSI (c) (60:50) [11:22:56:070]: SOFTWARE RESTRICTION POLICY:
C:\Public\Hotfix\EG\eguide_2.msp is permitted to run at the 'unrestricted'
authorization level.
MSI (c) (60:50) [11:22:56:070]: SequencePatches starts. Product code:
{604F30E1-35F2-4E34-AA21-3E83CDE863E1}, Product version: 6.100.0.0, Upgrade
code: {7D1500B3-D638-4213-9772-894096C84768}, Product language 1033
MSI (c) (60:50) [11:22:56:071]: Full optimizations are not possible in the
patch sequencer because new patch[es] had been added in the current
transaction.
MSI (c) (60:50) [11:22:56:071]: Applicability checks need to be performed
in this transaction because new, 3.0 minor update patch[es] have been
provided.
MSI (c) (60:50) [11:22:56:071]: PATCH SEQUENCER: verifying the
applicability of minor upgrade patch {B7C830A9-E120-48ED-BCC2-00C8989A5993}
against product code: {604F30E1-35F2-4E34-AA21-3E83CDE863E1}, product
version: 6.100.0.0, product language 1033 and upgrade code:
{7D1500B3-D638-4213-9772-894096C84768}
MSI (c) (60:50) [11:22:56:071]: Validating transform 'SEGPatch.1' with
validation bits 0x922
MSI (c) (60:50) [11:22:56:071]: Transform 'SEGPatch.1' is valid.
MSI (c) (60:50) [11:22:56:071]: Note: 1: 2262 2: _Tables 3: -2147287038
MSI (c) (60:50) [11:22:56:071]: Note: 1: 2262 2: _Columns 3: -2147287038
MSI (c) (60:50) [11:22:56:071]: PATCH SEQUENCER: minor upgrade patch
{B7C830A9-E120-48ED-BCC2-00C8989A5993} is applicable.
MSI (c) (60:50) [11:22:56:071]: PATCH SEQUENCER: verifying the
applicability of minor upgrade patch C:\Public\Hotfix\EG\eguide_2.msp
against product code: {604F30E1-35F2-4E34-AA21-3E83CDE863E1}, product
version: 6.100.1.7000, product language 1033 and upgrade code:
{7D1500B3-D638-4213-9772-894096C84768}
MSI (c) (60:50) [11:22:56:071]: Validating transform 'SEGPatch.1' with
validation bits 0x922
MSI (c) (60:50) [11:22:56:071]: Note: 1: 2749 2: SEGPatch.1 3:
C:\Public\Hotfix\EG\eguide_2.msp 4: 6.100.0.2789 5: 6.100.1.7000
MSI (c) (60:50) [11:22:56:071]: 1: 2749 2: SEGPatch.1 3:
C:\Public\Hotfix\EG\eguide_2.msp 4: 6.100.0.2789 5: 6.100.1.7000
MSI (c) (60:50) [11:22:56:071]: PATCH SEQUENCER: minor upgrade patch
C:\Public\Hotfix\EG\eguide_2.msp is not applicable.
MSI (c) (60:50) [11:22:56:071]: The #_QFESequence table with patches sorted
on Sequence within Patch Families:
MSI (c) (60:50) [11:22:56:071]: PatchGUID:
{B7C830A9-E120-48ED-BCC2-00C8989A5993} PatchFamily: SEGPatchFamily Sequence:
6.100.1 SequenceOrder: 0 Type: minor upgrade
MSI (c) (60:50) [11:22:56:071]: PATCH SEQUENCER: minor upgrade patch
{B7C830A9-E120-48ED-BCC2-00C8989A5993} cannot be superseded because there
is no supersedence defined in SEGPatchFamily family yet for this type
MSI (c) (60:50) [11:22:56:071]: PATCH SEQUENCER: minor upgrade patch
{B7C830A9-E120-48ED-BCC2-00C8989A5993} will attempt to supersede in
SEGPatchFamily family, starting from sequence 6.100.1
MSI (c) (60:50) [11:22:56:071]: SequencePatches returns success.
MSI (c) (60:50) [11:22:56:071]: Final Patch Application Order:
MSI (c) (60:50) [11:22:56:071]: {B7C830A9-E120-48ED-BCC2-00C8989A5993} -
MSI (c) (60:50) [11:22:56:071]: Other Patches:
MSI (c) (60:50) [11:22:56:071]: Unknown\Absent:
{34353211-73FE-4960-9F31-FBEF2451A3AD} - C:\Public\Hotfix\EG\eguide_2.msp
The upgrade cannot be installed by the Windows Installer service because
the program to be upgraded may be missing, or the upgrade may update a
different version of the program. Verify that the program to be upgraded
exists on your computer and that you have the correct upgrade.
C:\Windows\Installer\19b159c8.msi
MSI (c) (60:50) [11:22:56:072]: Product: MyProduct 6.1 (64-bit) - Update
'{34353211-73FE-4960-9F31-FBEF2451A3AD}' could not be installed. Error code
1642. Additional information is available in the log file
C:\Users\username\AppData\Local\Temp\MSI5f8b0.LOG.

================================

When building these patches, I am building both using 6.100.0 as my base
version, but I thought the Supersede="yes" attribute on the PatchFamily
element would let me apply the 6.100.2 patch directly on top of the 6.100.1
patch, however this is not the case. Any insight would be greatly
appreciated.

I am currently using WIX 3.5 to accomplish all of this.

Thanks,
Joe
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to