[wix-users] Patch installation

Stephanie Lutz (Plumbline) v-stlutz at microsoft.com
Wed Aug 3 06:06:19 PDT 2016

I'm working with update patches on our product and am trying to find a solution to ensure the order of patch installation.

There was a "cumulative update" done to our main product.  It was delivered as a Patch, and it contained several executables and .dlls as Components, all of which were included in a single PatchFamily:  e.g.:

      Manufacturer="My Company"
      DisplayName="Product Cumulative Update"
      Description="Cumulative Update 1"

    <Media Id="5000" Cabinet="RTM.cab">
      <PatchBaseline Id="RTM"/>

    <!--Server Files-->
    <PatchFamily Id="CU1_Server" Version='$(var.Version)' Supersede='yes' ProductCode='$(var.ProductCode)'>
      <?include $(env.INETROOT)\ HotFix\$(env.HOT_FIX_LOCATION)\HotFixComponentRef.wxi?>
      <ComponentRef Id="_app1.exe"/>
      <ComponentRef Id="_app2.exe"/>
      <ComponentRef Id="_app3.exe"/>
      <ComponentRef Id="_app4.exe"/>
      <ComponentRef Id="_app5.exe"/>
      <ComponentRef Id="_app6.exe"/>
      <ComponentRef Id="_app7.exe"/>

The GUID is being generated for us.

We then deliver additional hotfixes to the individual executables.   Each will have a version based on when it was created (i.e. the month and day are used as part of the version).
 So, if a hotfix for app1 was built earlier than a hotfix for app2, if the app2 hotfix is installed first - and both are built with the PatchFamily id of CU1_Server (as the cumulative update above), then the update for app1 will not be installed since the version is earlier than the app2 hotfix, even though different executables are being updated.

Also, some of our hotfixes were defined and built with a different PatchFamily specified.  While this addressed the "version" issue, this caused failures since the GUIDs were auto-generated - and it would not install new patches with a GUID less than a previously-installed patch.

Am I interpreting the order of installation correctly - and is there a way to ensure that patches that contain different components can be installed, even if built earlier?

I'm also working with our next cumulative update and need to ensure that all previous patches for this product are overwritten.
I've seen suggestions that a component can be in multiple patch families.  I wondered if that would be an option and would help this issue - but was unsure of how it determines the order of installation in that instance.

Thank you for any advice or help.

More information about the wix-users mailing list