FREE EBOOK
MSIX Packaging Fundamentals
Free Online Training Course
Master the Fundamental Skills and Techniques of MSIX Packaging

Introduction to Modern Applications
WHAT YOU'LL MASTER
As an ever-evolving art, we constantly struggle to apply discipline and semi-automated tools to produce successful and timely deployments for end-users. Hence why we gathered some experienced colleagues and industry connoisseurs to address and write a book with a specific purpose: to help enterprises properly prepare and deliver Windows applications.
MSIX Technology Fundamentals
WHAT YOU'LL MASTER
Microsoft presented MSIX in 2018 as an improved version of the AppX package (initially used only for UWP apps) to better support traditional desktop applications on Windows 10
AppxManifest.xml aka the Package Manifest
WHAT YOU'LL MASTER
The AppxManifest.xml file is the MSIX package manifest and an MSIX package contains a single manifest file.
Contents
Package Files and VFS
WHAT YOU'LL MASTER
Package files may exist either under the root of the package (next to the AppXManifest.xml file referenced earlier) as well as in numerous subfolders that may be created, or under a special subfolder named VFS or Virtual File System
Registry
WHAT YOU'LL MASTER
The MSIX container for Win32 applications brings the App-V registry style of containerization support to the mainstream. This helps to solve some issues, like registry bloat and application interference with other applications, but isolation causes different issues that you might have to deal with as well.
Package Deployment Install Locations
WHAT YOU'LL MASTER
This is a namespace that represents the file system volume used to hold the contents of installed AppX/Msix packages. The namespace is a system location, inaccessible by default, from Windows Explorer. Although there are methods to get at the folders and files inside the namespace, you can’t just browse through this as a folder to get to the package files.
Contents
Uninstall and Cleanup: MSI vs. MSIX
WHAT YOU'LL MASTER
Most of the time, when you uninstall an MSI package the application files from AppData and the registry entries created by the applications during its lifetime are left on the machine, polluting the system with garbage.
MSIX Tooling for IT Pros & Developers
WHAT YOU'LL MASTER
We're always looking for ways to simplify and smarten our job - and tools allow us to achieve that. As Microsoft MSIX Packaging Tool is the preferred tool for IT Pros that want to repackage into MSIX technology, we think it's important we go through it extensively, touching on the specific options and capabilities it brings.
Microsoft MSIX Packaging Tool
WHAT YOU'LL MASTER
Microsoft offers a first-party tool to help IT Pros repackage existing applications into MSIX packages by capturing the installation. The Microsoft MSIX Packaging Tool (MMPT) offers a basic level of capabilities that is sufficient for many situations.
Fundamental Packaging Concepts
WHAT YOU'LL MASTER
So far, we’ve covered the core concepts that we recommend you understand before you start building your first MSIX packages.
Digital Signing
WHAT YOU'LL MASTER
One of the main benefits of MSIX is its security-driven architecture. This is provided first by the app container and second, by the fact that each MSIX package carries a digital signature.
Package Support Framework
WHAT YOU'LL MASTER
Running Win32/WPF applications inside a MSIX container is a different paradigm. While there are benefits, the container also can cause issues with applications when you simply repackage them without making changes to the application source.
Contents
- Inside the Package Support Framework (PSF)
- Using the PsfLauncher
- How to determine the needed fixups
- Using the PsfFtaCom
- Psf Dependency Components
- Predefined Fixups
- ElectronFixup
- FileRedirectionFixup
- MfrFixup
- DynamicLibraryFixup
- RegLegacyFixups
- EnvVarFixup
- Applying the PSF
- Applying PSF for MSIX Packaging Tool
- Applying PSF with Advanced Installer
- Applying PSF with other Packaging Vendors
- Config.JSON and Config.XML
- Config Applications Section
- Config Processes Section
- Inspecting Fixups that are in a Package
User Settings and Data Associated with a Package
WHAT YOU'LL MASTER
As end-users utilize the applications that we package and distribute, they often make changes to the application settings, sometimes altering or creating new data files
Fundamental Deployment Concepts
WHAT YOU'LL MASTER
One of the big achievements of the first iteration of the Windows operating system was the ability to easily install applications on a desktop computer. By allowing non-technical consumers to install applications, Microsoft helped set in motion an era of consumer software development that still powers so much of our lives today.
MSIX Package Installations
WHAT YOU'LL MASTER
MSIX identifies packages via the package family name field of the package Manifest. For packages which use the same family name, the version string is also used for identification.
Manage MSIX Installations via App Installer App
WHAT YOU'LL MASTER
The App Installer application is now included with the operating system, however earlier versions of the OS required it to be obtained and installed from the Microsoft Store.
Installing MSIX with PowerShell
WHAT YOU'LL MASTER
Before we dive into using PowerShell to manage MSIX installations, here's a list of the primary PowerShell cmdlets used for managing packages:
Contents
Get, Add, Remove AppXPackage Cmdlets
WHAT YOU'LL MASTER
The most common use case of Add-AppPackage is to install a simple package. As a general best practice, file paths should be enclosed in double quotes to account for spaces in the path and allow for the use of variables in the file path (if needed).
Contents
- The Add-AppXPackage Cmdlet
- Installing a simple package
- Handling package dependency packages
- Handling External (Modification or Optional) packages
- The Get-AppXPackage Cmdlet
- Getting the user’s package list
- Eliminating System and Store Apps
- Getting all applications
- Additional Filtering Options
- The Remove-AppXPackage Cmdlet
- Using Get-AppPackageManifest
- Other MSIX/AppX Cmdlets
MSIX Deployment with DISM
WHAT YOU'LL MASTER
When talking about package deployment, Microsoft uses the term “offline” simply to indicate that the installation activity is disconnected from the end-user. For those instances where you need to perform an offline installation, you may deploy MSIX applications with the use of DISM, or alternatively you may use the Add-AppxProvisionedPackage PowerShell cmdlet.
Offline & Online Installation
WHAT YOU'LL MASTER
Application packages acquired from the Microsoft Store include licensing that must be applied. For offline installation to work, you need to acquire and add the licencing file when adding the package.
Provisioning Packages
WHAT YOU'LL MASTER
Provisioning packages are used to transform the default configuration of an off-the-shelf Windows device into the configuration an organization needs to provision the device to a user.
MSIX and the Windows Store
WHAT YOU'LL MASTER
It’s important to understand that Windows Store is more than just a consumer app store, it is a focal point for purchasing hardware and software for your organization.
MSIX and the App Installer File
WHAT YOU'LL MASTER
The MSIX package contains the AppXManifest file, which is an XML structured text file that contains information about the package as set by the developer/creator of the package.
MSIX Common Packaging Tutorials
WHAT YOU'LL MASTER
In this chapter we provide answers to some topics we are frequently asked about but have not yet covered.
Going Forward
WHAT YOU'LL MASTER
In 1999 Microsoft delivered the first MSI packages. Since then, Windows Installer has become the pillar of application packaging and deployment. The MSI is still the most used packaging technology for Windows applications, but the evolution of operating systems has outpaced the, mostly-ignored, Windows Installer technology