In the last article, we talked about how MSIX is the next gen deployment package. We touched upon few perks of using MSIX. One item we didn’t go into detail is how MSIX manages to run Win32 apps with breeze and what the shortcomings are.
Running Win32 Apps
Well, if MSIX needs to achieve true application isolation or security among other benefits, it needs to restrict few operations. For instance, it can’t allow apps to write files to the installation directory or current working directory. If you are an IT Pro, at first glance this strikes as a real non-starter. But, what if there is a solution?
Welcome to PSF
PSF, short for Package Support Framework is the solution to how you can overcome issues with Win32 apps running in a containerized environment. The framework is built on Microsoft’s Detours technology which basically ‘redirects’ API calls to a different location the app has access to.
Once you know the issue, PSF will allow you to apply a fix up to the app which makes it MSIX compatible. The way PSF works is, MSIX replaces the main exe with something called PSF Launcher which reads a configuration file (config.json) and injects the fixups into the main exe. For more detailed documentation on how PSF works, you refer to Microsoft's documentation here.
There is still a catch though. For IT Pros, there is no way of knowing of an issue without actually running into it. There is no magic wand that runs on a bunch of files and comes up with issues. Because the problems that we are dealing with here, are runtime issues.
Microsoft has open sourced Package Support Framework and is inviting developers to contribute to more fix ups, so that the community can take advantage of them faster. With Microsoft actively managing this and independent developers contributing to more fixups, over long term, we should have a healthy set of fixups that cover most common issues.
In a future article, we’ll illustrate how to use PSF with an example.