Contents
- What is MSIX
- The MSIX Package Layout
- AppxManifest.xml aka the Package Manifest
- Package Files and VFS
- Registry
- Package Deployment Install Locations
- Uninstall and Cleanup: MSI vs. MSIX
- Microsoft Documentation and Community Sites
- Microsoft Documentation
- MSIX Tech Community
- Industry Blogs & Resources
- Social Media
- OS Version vs MSIX Functionality
Package Deployment Install Locations
By default, all MSIX packages are installed/extracted by the OS in the following folder:
%ProgramFiles%\WindowsApps
This is a system location, inaccessible by default, from Windows Explorer. Although there are methods to make it visible, we will not be going over them in this book.
Inside that folder, you will find subfolders for each app installed on the machine, including the OS built-in apps. The folder names here are not necessarily related to the MSIX filename, but are derived from fields within the package manifest files. All folders have their name following this pattern:
PublisherName.AppName_AppVersion_architecture_hash
Here’s an example of a folder name (Note: there are two underscore symbols "_" before the hash):
Microsoft.WindowsCalculator_10.1806.1821.0__x64__8wekyb3d8bbwe
The extracted MSIX package is inside the folder, just as you would see if you extract it with 7-Zip or other similar tools.
Only the OS can write in this location when installing your app. If your app is writing log files or other data inside the installation folder, it may crash or behave defectively. You need to either update your code to write outside of the package boundaries (and to %AppData% on OS 1903 and above) or fix it using the Package Support Framework for other OS versions and in the situations when you don’t have access to the code.
Appx Volumes
The installation path mentioned above is the default appx volume present on every Windows 10 machine.
You can define multiple volumes, move apps between them, or completely move all apps from a volume (such as the default one) to a new one, on a different drive.
The appx volumes can be managed using these dedicated PowerShell commandlets:
> Add-AppxVolume > Remove-AppxVolume > Dismount-AppxVolume > Get-AppxVolume > Mount-AppxVolume
You can find more details on the MSIX PowerShell commandlets at Advanced Installer - MSIX Powershell cmdlets.
MSIX App Attach
With the introduction of Windows Virtual Desktop (WVD), Microsoft also introduced the MSIX App Attach, a delivery engine of desktop applications for virtual environments.
The underlying technology supporting this engine is similar to the one used by the FSLogix solutions. It relies on filter drivers to deliver the MSIX package from a VHD.
The install location for apps deployed through App Attach uses the new VHD as a source. Launching the app on the virtual desktop requires one additional step. This step, executed every time the user logs in, will register the app’s AppXManifest on the machine’s local default appx volume, %ProgramFiles%\WindowsApps. At log off, all apps published through App Attach are automatically deregistered.
So in the end, you get a hybrid install path, with the application binaries present on the VHD (which is usually stored on a shared-storage server) but with the AppxManifest found on the default appx volume.
Applications delivered through App Attach promise great improvements for VDI-based infrastructures, but currently with a few limitations - not all MSIX packages can be deployed using App Attach.
The App Attach technology is less than a year old, it hasn’t yet matured and currently lacks sufficient management. We’ll come back with more details on its capabilities and limitations in a future edition of this book.
You can read more about Microsoft's introduction for MSIX App Attach here at Microsoft Documentation - Azure | Virtual Desktop | What is AppAttach and within this book we will cover the topic in more detail within the "VDI Meets MSIX with App Attach".