Understand Update algorithm



I am experimenting with the update algorithm of MSIX. Is there a description? I have noticed the following:

  • The main property is "Identity Name". This property must match; if not, it is another app.
  • The version number must be increased.
  • Architecture doesn't matter. Package V1.0 with x64 app is installed. Package V1.1. with x86 app overwrites V1.0, just like package V1.2 with Neutral app.
  • Publisher must match. Different publisher in a package with a higher version leads to error.
  • A MSIXBundle can be used as an update for a MSIX package. But if a bundle is installed, this cannot be updated by a MSIX package.

Is this correct?


4 Replies

Are you testing with a new MSIX package or a differential package? I would recommend a differential package.

I don't see the relation to my question. My test packages contain different versions of a .NET Winform App, partly also different architecture (x66, x64, AnyCPU). I packed them into MSIX and got the corresponding results. I understood that MSIX always executes block updates.

best response confirmed by Andreas Kerl (Contributor)

Upgrades are performed within the same package family.  The package family is comprised from the Package Name and Publisher.  So they need to stay the same to update.  These are the other considerations:


  • Packages must increment to a higher version.  Lower versions are blocked by default.  1809 did introduce a "rollback" like feature.  It allows install of a lower version package when an override is provided.  Right now it is available in PowerShell using the ForceUpdateFromAnyVersion switch
  • Packages can switch archiecture as long as the acritechure is applicable to the OS
  • Packages can move from an MSIX to an MSIX bundle, but bundles to MSIX are not supported



John, You're a hero. Thanks