TMEditX Editor and Tools 6.2

Version 6.2 of the TMEditX Editor and the TMEditX Tools are both released today.  This post covers both releases.

TMEditX Editor

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

The TMEditX Editor changes in 6.2 include the following:

  • PSF v.2025.09.19 which is covered in blog post New in PSF v.2025.09.19 – Confessions of a Guru
  • Add flexibility on whether to fix missing fonts. By customer request, we added a configuration option that will place this fixup in either the Recommended or Available list.  Previously, this always went to the Recommended list.  Also added a new command line option /AutoSkipFonts as a way to disable automatically fixing this for a single package from the command line.
  • Added flexibility on whether InstalledLocationVirtualization should be used. Also by customer request, a new configuration option in the tool allows you to specify to never add ILV to the package (and if MfrFixup is used to disable the IlvAware mode there also).  The customer expressed concern in their environment for binary files to look like they are in the redirection area, which happens automatically with ILV using sparse blocks pointing back to the package installation folder.  This apparently was an issue for a security monitoring tool.  The security tool could likely be configured to allow this, but that is another group…
  • Support for new PSF Debug Logging. The tool will normally configure the PSF with the PsfDebugLevel of 2, which is the equivalent to what we used to get unless you requested the Debug build of the PSF.  This provides logging of the PsfLauncher, PsfFtaCom launcher, and the launching of any child processes in the container. There is a new Available fixup to increase the logging level to 4, which is equivalent to using the Debug binaries of the PSF.  Manual editing of this value to other levels is also possible on the Json tab.  See  Wiki page for Config.Json for the definition of the levels.
  • COM Changes.
    • Added detection and new fixup for COM entries that require VB6 runtime.  The fixup will add version 6 of the runtime to the package, which will allow for registration of the COM components that use it.
    • Fix issue where app had a bad CLSID GUID, and made sure other COM Guids like Interface and TypLibs are well formed also.  Previously we would add these in the AppXManifest and the package would fail to install.  Obviously, the app isn’t using COM objects natively anyway.
    • Added additional checking for all COM CLSID, Interface, and TypeLib entries to ensure that they are valid entries in the registry, not just the GUID but that all required fields are present.  There are many installers adding garbage into the Classes area for non-COM purposes.  We now detect these and report them in the Unfixed and Informational item list.
    • Fix issue where the App registered an Interface with an incorrectly formed path, as in “\folder\name.dll”.  If we can find the dll in the package, we just correct the entry and process it now.
    • Fix issue with an app that registered a ProgID for COM using a name that included the _ character.  This is not allowed natively per Microsoft documentation but works anyway.  In the AppXManifest this is not allowed and resulted in a package that would not save.  We now detect this and add it into the “unfixable and informational” item list.  Testing so far indicates that in most cases, the ProgID in this form may be used as long as it is in the virtual registry without being in the AppXManifest.
    • Added support for COM registration with TreatAs and ProgId properly.
    • Improved diagnostics and support for apps with ActiveX COM components.
  • Added code to emit an exit code when TMEditX closes.  This value is for use in automation scenarios and provides an indication of the licensing state of TMEditX, package save state, and signtool/timestamping state.  A return value of zero indicates that the package was successfully updated as requested using an active production license key. The values are bit-encoded as follows (other bits are reserved/set to zero):
    Bit Position Meaning
    0 Tool was run using an active trial license key
    1 Tool was run using an expired trial license key
    2 Tool was run using an expired production license key.
    3 Tool has not been licensed
    4 A failure occurred in saving the package (makemsix or makeappx)
    8 A failure occurred in signing or timestamping the package
  • Updated to use the latest libraries used for generation of CimFS packages for AppAttach.
  • Made performance improvements when analyzing packages with lots of COM.

Where to get the release

The latest version of TMEditX Editor is found at the following link.  TMEditX has a fully functional trial mode that can be used to verify just how good it is.  TMEditX Download

TMEditX Tools

TMEditX Tools is the free tools for packagers wanting to quickly test and debug their MSIX packages.  It contains two apps.  MSIXDeploy is used to install, uninstall, and debug MSIX and AppAttach packages from your file share without the need of a server. ParsePsfDebugLog is a tool for organizing and formatting the debug log output produced when you use the PSF (especially the Debug Psf).

The following changes are in the tools:

MSIXDeploy:

  • Better treatment when installing and uninstalling CIMFS packages for testing.

ParsePsfDebugLog:

  • Improved support for the new PSF logging.
  • Slight performance improvements in the UI.

Where to get the release

TMEditX Tools is free, and the latest release may be found at TMEditX Tools Download

By Tim Mangan

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