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
Packaging your Application
Acquiring the PSF
Configuring PSF
Package PSF into MSIX Package
Matthias Herfurth, Johannes Freundorfer and Ingmar Oosterhoff