The 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.

 

A new update to the PSF has been released. From the release notes:

  • RegLegacyFixup: Added support for two new rule types, DeletionMarker and JavaBlocker

Microsoft recently added a new feature to my RegLegacyFixup in their own fork of the PSF.  This was an attempt by Microsoft to respond to requests by customers for Deletion Markers in the virtual registry, a feature that existed in App-V packages.

But rather than add the deletion markers into the virtual registry .DAT files, they chose to solve it in the RegLegacyFixup as a new rule type.

I believe that the rule is rather complicated for IT Pros to implement for the primary reason for the ask, which is Java, so in addition to porting their changes into my fork (for consistency), I also added an additional new simpler rule type to the fixup called JavaBlocker.

To use the JavaBlocker rule, you just need to ask for the rule in the config.xml file and specify the version of Java that is in your package.

A common scenario is that you have an application that requires an old crusty version of Java, like 1.7U45.  The app doesn’t work with newer versions of Java, because, well Java!

So now you can package up the app into an MSIX package with the version of Java it requires, and this rule will prevent the application inside this package from seeing any natively installed version of Java (such as one that supposedly has all security issues fixed).

Here is an example of the config.xml you might use:

"fixups": [
 {
   "dll":"RegLegacyFixups.dll",
   "config": [
     { 
        "remediation": [
          {

             "type": "JavaBlocker",
     
              "majorVersion": "1",
     
              "minorVersion": "7",

             "updateVersion": "45"
 
        }

        ]
     }
   ]
 }
]

When used in an MSIX package that has 1.7U45 installed in it and run on a system with a newer version installed, you can have the application working with the packaged version and not see the natively installed version, as is shown in the screen shot below:

My fork of the Package Support Framework is found on GitHub here: TimMangan/MSIX-PackageSupportFramework: The Package Support Framework (PSF) is a kit for applying compatibility fixes to packaged desktop applications. (github.com). In addition to the source, the release file has pre-built binaries that can be directly used by you.

The v2024.01.02 version will be included in the next releases of the following tools (keep an eye out for future announcements):

  • PsfTooling: Version 6.6.0.0 or later
  • TMEditX: Version 3.9.0.0 or later

Blog Banner Tim Mangan