PsfTooling is a GUI tool for working with Microsoft MSIX Packaging Tool and the Package Support Framework (PSF). Use on the packaging VM to inject and configure the PSF into your package.
The MSIX container presents challenges for certain applications, especially the older ones. Microsoft created the Package Support Framework (PSF) to help address these, but you are on your own to implement it. While there is a NuGet package for developers, for IT Pros repackaging apps it is only available in source code form up on GitHub here.
PsfTooling is a free community tool from TMurgent that helps IT Pros with repackaging into MSIX. While in the installation mode of your packaging tool, after installing the application to be captured you then use PsfTooling to inject the PSF files, create the json based configuration for them, and fix up your shortcuts to use it. And the tool includes a pre-built version of the PSF so you don't have to build it yourself.
PsfTooling V3.2 (Full blog description) includes the following:
- Released as an MSIX package itself! Get it from the from the Microsoft Store.
- A pre-built version of the Package Support Framework, including the latest changes available at build time.
- A revamped User Interface to help with more complicated packages. While the original software was a Json editor with wizards added to inject the PSD, the revamped design is focused around the wizards, and happens to include a Json editor.
- Support for the new PSF features, listed below have been added.
- An updated 12 minute video to show you how to use it.
Additions to PSF Supported in PsfTooling V3.2: (Full blog description)
We submitted a pull request that was integrated into the main branch of the PSF in December of 2012. This version supports these changes, which include:
- A new DynamicLibraryFixup, Add this fixup when your application fails to find one of its dlls. This can happen under MSIX becasuse of changes to the working directory, or that MSIX does not support changes to the Path Variable nor AppPath Regitrations.
- Changes to FileRedirectionFixup that now allows for use of the PSF without being required to place all of the PSF components in the root folder of the package. This was always a challenge when using PsfTooling because the tool had to guess where that was. With this change, PsfTooling will now, by default, place the components in folders with the application that needs them and the wizards will configure appropriately. If you need the old behavior, make sure the PVAD pulldown points to the correct folder and uncheck the configuration setting in the FRF that says "Always use VFS pathing".
- Changes to FileRedirectionFixup that address redirection issues detected. This improves the application compatibility.
- Changes to FileRedirectionFixup: Debug logging to the system debug logs (for when TraceFixup is not in use) has been cleaned up. The regular builds will output messages only from PsfLauncher. All debug logging by the FileRedirectionFixup is now limited to the Debug build so as to not affect application performance. PsfLauncher has two shortcuts, one that injects the release build of PSF components and a second one (PsfLauncherD) that injects the Debug version. This allows some level of debugging with the FRF without having to also inject the TraceFixup.
- Changes to PsgMonitor: Previously PsfMonitor was built as AnyCPU. Now specific x86 and x64 builds are used. This solved an issue in companies that used group policy to control AnyCPU behavior. PsfTooling now injects a PsfBonitor that matches the bitness of the OS.
- Changes to PsfMonitor: The monitor now includes events from the standard Windows Application and System logs automatically.
Additions to PSF Supported in PsfTooling V3:
We submitted a pull request that was integrated into the main branch of the PSF on 6/21/2019. This version supports these changes, which include:
- When the FileRedirectionFixup is used, added the ability to control where modified files are copied to. Previously, package files that were modified were always copied to the user's local profile. You may now specify an alternate location such as a HOME drive or SMB share. Note: You may not specify the user's roaming profile; if you do the MSIX Runtime will redirect the copy back into the local profile.
- When the FileRedirectionFixup is used, added the ability to provide exclusions from the copy-on-access.
- When the FileRedirectionFixup is used, added the ability to specify copying from the package AppData or LocalAppData folders so that the app can see it's own settings and data.
- When the FileRedirectionFixup is used, added the ability to mark the copies as read-only to redirected settings and data files to prevent user modification. This is useful when IT wants to mandate the configuration.
- When the FileRedirectionFixup is used, added missing variable names to the Known Folder List (VFS locations).
- When the FileRedirectionFixup is used, added support for certain file types like blobs.
Microsoft also added changes to the PSF since the version used in PsfTooling V2:
- Added the ability to specify a start of application and an end of application script.
- Other non-documented changes made by Microsoft.
A post further explaining those changes may be found here: https://www.tmurgent.com/TmBlog/?p=2932
PSF Tooling will automatically fix up shortcuts to non executables and those with arguments to use PsfLaunch for you when you pick the modification of the shortcut.
First, watch this updated 12 minute video about V3.2 of the tool. Then see below for download information and start packaging!
The software is now delivered as an MSIX package from the Windows Store. You can get it three different ways: