Packaging Windows desktop apps with MSIX

A brief introduction to MSIX

Nowadays, if you want to deploy an application, your best option is MSIX.

MSIX package structure

An MSIX package is divided into two main blocks: the package payload and the footprint files.

App payload

The app payload files are the code files and assets created during the application’s building.

Footprint files

The footprint files are the AppxBlockMap, the AppxSignature, and the AppManifest. All MSIX files require to be signed before install. The AppxSignature and the AppxBlockMap work together and allow us to install and validate our package. You’ll find more information about these two files in the Microsoft documentation.

App package manifest

The package manifest is an XML file that contains information about package identity, package dependencies, required capabilities, visual elements, and extensibility points. Every application package includes only one package manifest file. Because it is signed during the package signing operation, it can’t be modified. Modifying the manifest invalidates the package signature. An in-depth article about this topic can be found in the next post.

Types of app packages

There are several types of packages that you can pick, depending on your needs. They are:

  • App Bundle (.msixbundle or .appxbundle): app bundles can contain multiple application packages for different device architectures (x86, x64, and ARM). App bundles allow your application to be available on the widest possible range of devices.
  • App Package Upload File (.msixupload or .appxupload — store submission only): a single file that contains multiple app packages or an app bundle. App Package Upload File contains a symbol file that is automatically created when you package your application to submit it to the store. The symbol file analyses the performance of your application.

Creating an Application Packaging Project

First, we will need to create a new Application package project, to do so, let’s perform the following steps.

Publishing your package using Visual Studio

Now that you have your package ready you will need to publish it, to do so you need to perform the following steps.

  • Then select the distribution method (we used the Sideloading option) and click on the Next button.
  • Select the signing method. You can generate a test certificate by using the PowerShell commands found here.

Summing Up

MSIX is too big to be discussed in only one article, so this is the entry point to this technology. You can read more in Microsoft documentation starting here. Thank you for reading.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store