MSIX Packaging PSF Tools

PsfTooling 3.2 for MSIX Packaging

Today the PsfTooling version 3.2 was released in

the Microsoft Store toady. A free community tool, PsfTooling is used with MSIX Packaging tools where you want to add the latest version of the Package Support Framework (PSF) to your package.  This primarily means the Microsoft MSIX Packaging Tool (also free in the Store), but any vendor offering an installation monitoring repackage capability is fare game.

PsfTooling is used during a repackaging of a “traditional” installer when producing an MSIX package. It includes a pre-build copy of the PSF that includes the changes from my last pull request as described in this post:

You use PsfTooling immediately after installing and configuring the application to be packaged. The tool is wizard based, and based on what you need it will copy the appropriate components of the PSF to your system, set the PSF configuration config.json file, and make small changes to components such as your shortcuts and file type associations to cause the PSF to be used when the user tries to use the deployed package.

Generally, you use the Shortcut Wizard.  Previously, you had to use what I call “PVAD” style packaging when you use the PSF, but now it is much easier to use the “VFS” style, which is now the default. You configure what you need, select the shortcuts, and apply them into the pending list.

When the application launches other processes that need the PSF also, you next run the Executable wizard to configure those.  This is pretty rare, but it does show up from time to time.

If the application has file type associations, you then run the FTA wizard. This one will automatically find the FTAs for you so just follow the prompts!

On any of these wizards, you can choose to insert up to three fixup dlls that are available today:

  • The TraceFixup, which injects an API SPY like functionality. With this in your pacage you can test and can view the most important of the Windows API calls that might be causing issues. You can choose to view the output in an external SysInternals DebugView utility or use PsfMonitor, our own Process Monitor like viewer built specifically for debugging in the PSF and dropped directly into your package.
  • The FileRedirectionFixup, which solves issues with apps not finding files they placed in the local or roaming profiles, or apps that need to modify files that are in the package like configuration files.
  • The DynamicLibraryFixup, which solves issues with the app finding its dlls.
  • And with or tithouth any of these, you still get the PsfLauncher which solves issues with shortcuts, command line parameters, and current working directory.

Finally, you can manually edit the config.json if you need to before applying the changes, but you will only need to do that if the PsfTooling doesn’t support the exact thing you need.  Apply the changes, close the tool, and finish off your packaging!

MSIX repackaging is intended for any Win32 or WPF application, but most enterprise apps need help to run in the MSIX container. Using the PSF we can clearly improve on the number of applications that can be repackaged into MSIX.  Over time we will expand those capabilities beyond what we have here, but it is a great start.

Stay tuned in January for the release of this year’s Report Card on MSIX, the definitive guide to what is possible using MSIX today. It will include a lot of testing using the latest Packaging tools from Microsoft and third party vendors, and of course, PsfTooling. We will also release the results of the Community Surveys on MSIX in the report, so you will be able to see what others think about MSIX as well. (If it is still 2019 you can still vote!)