June 16th, 2026
heart1 reaction

Third Rule of MSIX

Principal Software Engineer

MSIX has several core principles underlying its design and implementation. Engineers half-jokingly call these The Rules of MSIX. The Third Rule of MSIX is arguably the most important and certainly the most foundational:

Package identity is unique across space and time

Packageidentity is a unique identifier corresponding to a specific set of bits. Change even a single bit in the package and the package identity must change as well.

The deployment engine relies on this rule when deciding if a package needs to be staged. If an existing package already has the same identity, deployment skips staging work. This optimization depends entirely on the Third Rule of MSIX.

If two packages share the same identity but contain different content, deployment will reject the second package with ERROR_PACKAGE_ALREADY_EXISTS.

For example:

[C:] Add-AppxPackage hello.msix

[C:] Add-AppxPackage hello-contents-differ.msix
Add-AppxPackage : Deployment failed with HRESULT: 0x80073CFB, The provided package is already installed, and reinstallation of the package was blocked. Check the AppXDeployment-Server event log for details.<br>
Deployment of package hello_0.0.0.0_neutral__8wekyb3d8bbwe was blocked because the provided package has the same identity as an already-installed package but the contents are different. Increment the version number of the
package to be installed, or remove the old package for every user on the system before installing this package.

If you distribute two packages with the same identity but different content, you will eventually discover the mistake – typically through a sudden uptick in “can’t update” bug reports.

The usual fix is to release a newer version of the package. Deployment will then update to the newer package, regardless which variant was previously installed.

That works, but it’s far better not to end up in this situation in the first place.

Honor the Third Rule of MSIX.

Author

Howard Kapustein
Principal Software Engineer

MSIX Development Engineer/Architect

0 comments