Tripple Releases for awesome MSIX packaging

This post documents the April (2022) releases for MSIX.  There are three parts:

  1. PSF v2022.04.27
  2. PsfTooling 5.2.0.0
  3. TMEditX  2.2.0.0

Each have their own section in this post below.

New in PSF for v2022.04.27

Psf LogoThe Package Support Framework (PSF) was originally an open-source project to help Win32/DotNet applications run when inside an MSIX Container.  TMurgent has taken up the support for the PSF in our own fork here on GitHub. The changes below cover changes made since the February 2022 release:

  • Fixed a long-standing flaw in Detours.
  • Added “Argument virtualization” in PsfLauncher.  If the config.json contains arguments for the executable that PsfLauncher is to run, the arguments may contain filepath information.  If so, and the filepath references a native location, the launcher will now look to see if there is a filepath in the appropriate VFS location inside the package.  It will then alter the arguments to point to the WindowsApps location for the package VFS folder.
  • Improved support for PsfLauncher to start processes that are outside of the package and run them inside the package with configured fixups.  This affects packages that name this executable (like notepad or wordpad) in the executable field for PsfLauncher configuration rather than rely on file type associations against a data file.
  • Added support for missing intercept function in FileRedirectionFixup.  The function ‘SearchPath’ is now supported.  Most software uses FindFirstFile/FindNextFile but we found some apps using this API instead.
  • Improvements in the layering to several FileRedirectionFixup intercepts to match the previous changes made in FindFirstFile in the February release. 
  • Added better handling of path matching to ensure case-insensitive testing is performed.
  • Improvements made to debug logging.  These changes make it possible to produce a log parser tool planned for TMEditX 2.2 release.
  • Updated PSF documentation for PsfLauncher with new example.
  • Updated PSF Test code.
  • Added a new Wiki section to the GitHub to provide documentation on the PSF more appropriate for IT pros, to supplement the existing developer-oriented documentation that is directly with the code.

New in PsfTooling 5.2.0.0

 

PsfTooling is the free tool to work in conjunction with the Microsoft MSIX Packaging Tool.   [Download_Page]

 

  • Includes all fixes from PSF v2022.04.27 and v2022.04.14 releases to increase application compatibility.
  • Add Personal folder to supported VFS list.
  • Dereference Environmental Variables in filename paths.
  • Fix for AppVPackageDrive references in config.json file.
  • Add detection to determine if DynamicLigraryFixup is needed.
  • Add support for new architecture flag in DynamicLibraryFixup.
  • Added an exclusion option (defaulted on) for certain folders (such as the Desktop folder) in the FRF configuration.
  • Added an exclusion for PowerShell processes to not receive fixups (as these will crash the PowerShell process).
  • Automatically add the ‘standard 3’ rules as default whenever the RegLegacyFixup is requested.

New in TMEditX 2.2.0.0

TMEditX is the licensed and more capable tool for fixing up MSIX packages since it doesn’t have to depend on the Microsoft MSIX Packaging Tool to create the final package.  [Download_page]

 

The TMEditX package contains several applications. Changes to the apps are separated by app below:

TMEditX Changes:

  • Includes all fixes from PSF v2022.04.27, v2022.04.14, and v2022.02.28 releases to increase application compatibility.
  • Adds support for new architecture flag in DynamicLibraryFixup
  • Made Timestamping of MSIX packages optional (by customer request).
  • Added exclusion to PowerShell processes as fixups may not be injected into it.
  • Added certain excluded folders to FRF by default (such as Desktop folder).
  • Consolidate LoadSearchOrder and ExectutionAlias found fix items.
  • Allow fixup dlls to contain path information (possibly generated by other tooling).

TMMsixDeploy changes:

  • Added ability to inject a cmd process into a deployed package.

TMParsePsfDebugLog. 

  • This is a new program added to the package in this release.  If you use TMEditX to add the debug version of the PSF into a package, you can use a tool like DebugView to capture the debug port logging.  This log can be tedious to read, so we now have a log reader that will organize the information and make it easier to find what you need.  Just save the output from DebugView to a text file and open in this tool.
  • Video about this tool:

By Tim Mangan

Tim is a Microsoft MVP, and a Citrix CTP Fellow. He is an expert in App-V and MSIX.