MSI vs MSIX: Practical Side-by-Side Comparison

Written by Radu Popescu · January 13th, 2022

In 2018, MSIX was announced by Microsoft as the new universal package format for Windows 10 apps with the later support on desktop, mobile, and other Windows 10 devices.

Even though Microsoft extended the lifecycle support for AppX, the tendency is to replace it with MSIX format. As for the MSI, it remains the preferred format of the majority and looks like it is here to stay.

MSIX is a young technology - there is so much more to be developed. And that’s why it comes with imperfections and some serious limitations. It is, though, the future of containerization. Below I have summarized a side-by-side comparison of MSI and MSIX “builds” to have a practical overview of the features and limitations for each of the formats.

FeaturesMSIXMSI
Digital SignatureMandatoryRecommended but not mandatory
RegistryContainerized hives* HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_CLASSES_ROOT
Registry.dat
User.dat
User.Classes.dat
All registry hives: HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_CLASSES_ROOT
HKEY_USER
HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG
ShortcutExecuted as App (Windows App) Command-line arguments not supported yet**A custom shortcut that can link anything
Install FolderBy default in %ProgramFiles%\WindowsApps *****Can be customized
Execution EnvironmentContainerized***Direct in the OS
DriversNot supportedSupported
ServicesSupportedSupported
Custom ActionsIt can only be executed before the app is opened or when it’s closed. It cannot be placed in the install sequence. Scripts executions are added to the config.json fileCan be executed anywhere in the install sequence
Auto-updateSupportedSupported
Table EditingNot supportedSupported
Context menuLimited****Shell menu & shell extensions


*Containerized hives mean than there is no regular registry hive. Instead, the containerized registry data is kept in 3 .dat files: Registry.dat User.dat User.Classes.dat.

NoteInspect the MSIX registry using Hover here.

**Command-line arguments are not supported, and there is no Argument entry in the MSIX manifest. However, this can be tweaked by creating a stub/launcher used as an entry point in your MSIX app using Advanced Installer. See here how.

***Containerized means the files are redirected. Learn more here.

****Limited - you can have some sort of file association and context menu. Learn more here.

****Install Folder - The default installation folder can be changed via powershell cmdlets.

MSIX Limitations

For the moment MSIX is limited to the features below. Each feature is available only starting with a certain Windows version.

FeaturesWindows Version
Allow elevationStarting with version 1809
App Installer File SupportStarting with version 1709
Defer registration flagStarting with version 2004
Force update from any version downgradeStarting with version 1809
Force provisioningStarting with version 2004
Identity for packaged desktop appsStarting with version 1709
Microsoft Store submission & supportStarting with version 1809
Modification packagesStarting with version 1809
Native MSIX install and uninstallStarting with version 1709
Package format .msix .appx .appxbundleStarting with version 1709
Package format .msixbundleStarting with version 1709
Package Integrity Enforcement for non-Store packagesStarting with version 2004
Package Support Framework (PSF)Starting with version 1709
Windows servicesStarting with version 2004

ImportantMore on the subject is available here: MSIX supported features by OS.

Comments: