MSI vs MSIX: Practical Side-by-Side Comparison

Written by Radu Popescu · January 29th, 2020

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 FolderOnly in %ProgramFiles%\WindowsAppsCan 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.

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

Comments: