Share via


MSIX: Package Support Framework Part One - The Blueprint

Now our Christmas break  is over we can start 2019 with another series of blogs . This time we’re covering the MSIX Package Support Framework.

Why is the Package Support Framework (PSF) so important when converting old applications into MSIX? You ask.

 

Well, as with any modern containerization technology, there are some guidelines, applications need to follow to work properly. Starting with the major changes Windows Vista brought applications need to be granted user permissions and access to the filesystem . With an Appx/MSIX container access to the Package root, C:\Windows or CommonFiles is not allowed. This could probably be overcome if you have access to the original source code but how do you fix a legacy application that is just an msi or an exe ? . To solve these compatibility issues the Package Support Framework was created.

 

With this in mind let's have a look into a typical MSIX deployment.

 

Typically MSIX-Applications are launched in this order:

 

Shell tries to execute MSIX Package (MyApp.Exe)

From this the Content of AppXManifest.xml is evaluated.

Within the manifest the Application Tag defines executable to run: MyApp.Exe and then

Application gets started

To implement an MSIX Application that needs the  Package Support Framework configuration there are quite some significant differences . As Follows

 

Shell tries to execute MSIX Package(MyApp.exe)

Once again the content of AppXManifest.xml is evaluated

This time though the  Application Tag defines executable to run:PsfLauncher32.exe (PsfLauncher64.exe is there for 64Bit Applications)

PsfLauncherXX.exe is executed and reads a Config.Json file

Config.Json file contains target executable and File-Redirection rules

PsfLauncherXX.exe launches target executable

This is just the high level overview and blueprint we'll use in our series of blog posts to help you successfully implement your first application fix.

 

Look out for our upcoming blog series on

 

  1. Packaging your Application

  2. Acquiring the PSF

  3. Configuring PSF

  4. Package PSF into MSIX Package

Matthias Herfurth, Johannes Freundorfer and Ingmar Oosterhoff