Announcing TMEditX Editor 6.0; also New FREE Community Tools

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]

 

Introduction

A major release for TMEditX, version 6.0.0.0 has been released, and along with it a separate release of new Community Tooling for working with MSIX.

  • TMEditX Editor will continue to be a licensed commercial editor and fixer for MSIX packages.
  • TMEditX Tools is an MSIX package containing free community tools that aid in the testing and debugging of MSIX packages.

The tools included in TMEditX Tools were previously known as part of the TMEditX licensed product.  The separation of these tools from the overall package allows us to make this tooling free to the community to use and will allow for some develop independent of the Editor product release schedule.

Information on these two releases is given below.

 

TMEditX Tools

So, what is in TMEditX Tools?  TMEditX Tools is our free Community Tooling.  Anyone can use it free of charge and without restrictions on installation and use.  Today, it consists of two programs.

MsixDeploy.  This tool is typically used by the packager on their test system to test and debug their new MSIX and AppAttach packages.  All without having to use a server or Azure console.  For users of our popular community tools for Microsoft App-V, it is equivalent to AppV_Manage, but for MSIX.  For a short introduction on MsixDeploy, click Short Video on using MsixDeploy

MsixDeploy provides the following features:

  • A glance view of packages with extracted information such as what PSF components, and major package extensions, are contained.
  • Right single-click installation/uninstallation of any MSIX or AppAttach formatted package, including Vhd/Vhdx/Cim.
  • Right click access to an installed package to view the installation folder or user redirection folder in explorer.
  • Right click access to view files in the package like the AppXManifest or Config.json files.
  • Right click access to launch processes inside the target container.
  • Creation/Installation/Uninstallation of Shared Package Containers.
  • Advanced debugging techniques like live PSF changes without repackaging.
  • Easy enable/disable for capturing full process dumps of applications that crash.

ParsePsfDebugLog. Newly revamped for this release, this tool is used to quickly parse through the output of a run of an application that has been packaged into MSIX using the debug build of the PSF.  The new release is much faster to use and is now organized to help you find the events that are causing the issue you want to diagnose, while making all of the gory detail available on demand.

TMEditX Tools is available for download from our website.  It is free to use for anyone.  Download page:  TMEditX Tools Download

 

TMEditX Editor

The editor is by now already familiar to most readers.  So, I won’t describe what the editor is, but only what has changed from our last release.

Version 6.0 is a major release due to the many changes to the tool.

  • Licensing. The terms of the licensing, licensed on a per-user (aka packager) basis, do not change. 

The mechanisms use to implement licensing do change, however. The new mechanism will be a file-based license that is ingested info the product, rather than a GUID.  This will allow us to finally support offline activation of the product, a constant request from a portion of our customers.

The new mechanism also solves an issue with the old system that made trial versions unwieldy.  People will still be able to download the package from our website and try it out without contacting us as before, including the random chance that it might or might not add the PSF at times.  But new customers may request a trial license file to fully unlock the product for a period of time.

Existing customers with current maintenance will receive new license files via email as this release goes out.  The new version of TMEditX Editor will install as an update to the current TMEditX, but the additional tools will be missing, and you’ll need to download the TMEditX Tools package to regain them.  Your TMeditX will retain current configurations, and you will need to activate it using the new license file.  The TMEditX Tools will need reconfiguration.

Implemented as a new feature of PsfLauncher, this directive tells the launcher that when the launched target program ends, to check if there are any remaining processes that are a child-process of the launched target.  If so, the launcher will issue a dialog box prompt alerting the user that their session is still open and allowing them to terminate the child processes to release the session.

  • New Scripting Variable. When adding application scripts to the package, the scripting previously supported two pseudo-variables, %MsixPackageRoot% and %MsixWritablePackageRoot%.  By customer request, we have now added a third variable %MsixPackageFamilyName%.  See PsfLauncher scripting documentation on the GitHub Wiki: PsfLauncher · TimMangan/MSIX-PackageSupportFramework Wiki · GitHub
  • Run Key Fixup.  Previously, we detected both Run and RunOnce Keys and reported them as “Unfixed/Informational” items, alerting you to them when in your package but leaving it to you to deal with them manually.  In this release, we split these into separate items by key type. 

RunOnce Keys remain unfixed/informational. 

Run Keys now have an available fixup associated with them.  If the fixup is used, it will translate the value and turn into an AppXManifest extension for the equivalent of old the start menu “startup” folder.  Like other uses of this extension, when the package is installed, nothing happens, but (in a persistent OS scenario) each time the user logs back in the command will be run automatically. 

Additionally, we added a command line option /AutoFixRunKeys that will turn the fixup into a recommended fixup and automatically apply it to the package when recommended fixups are processed.

  • Duplicate Shortcuts. The most recent release of the Microsoft MSIX Packaging Tool (even if in isn’t “recent”), made changes that lead to the user seeing duplicate shortcuts.  Previously, TMEditX detected and removed these.  Changes in the last two release to improve other shortcut scenarios left a small gap where some of these duplicate shortcuts remained, even after processing all of the recommended fixups. This gap is now eliminated and a recommended fixup for duplicate shortcuts will resolve it.
  • AppPaths to LoaderSearchOrder. Some applications use AppPaths registration to list additional folders with hold dlls for the purpose of getting the LoadLibrary function used to load dlls to look in those additional folders. 

Two releases ago we added a recommended fixup to turn those entries into a package level extension of type LoaderSearchOrder that accomplishes the same thing.  Then we discovered that the new extension has a limit of only 5 filepaths, and we saw one app that had over 20 folders it was registering. 

In the follow-up release we changed the detection to make the fixup be in the Available list, and to not exceed the five path limit, thus supporting up to the first 5 entries. 

In this release, we return the fixup to the Recommended list but do a better job parsing the list.  We remove folders from the list that have no dlls, remove folders that would already be covered by LoadLibrary, and limit the list size to 5.  We still recommend using the PsfDynamicLibraryFixup for such apps as the first choice, but this makes for a decent backup option.

  • A change has been made for how we implement COM CLSID remediation.  Due to a mistake in the Microsoft Documentation for AppManifest COM extensions, we were limiting what could be combined in a COM registration.  We now recognize that the documentation was in error, and will now combine items when appropriate.  This not only reduces the size of AppXManifest files with lots of COM, but it also significantly reduces the confusion of someone trying to read it.  It also allowed us to do more remediation (normal adding of missing COM to the package) and less anti-disregardation (spoofing of GUIDS so that we can get things registered when limited by the schemas unnecessarily).
  • Added support for a type of COM previously unsupportable.  The specific case is for a 32-bit managed COM in-process COM object on an x64 operating system that uses mscoree as a proxy.  This is a new recommended fixup.
  • When adding any COM CLSID, check if the filepath is under VFS\SYSTEM.  If it is, check if the file is actually there on the system, or is instead in VFS\SYSTEMX64.  This is an oddity of some MSI installers.  If detected, we change the registration to the correct path.
  • Fixed the incorrect regex pattern used to validate ST_ExcludedDirectory in the VirtualizationManifestSchema.  This apparently is a bug in the official schema released in the Windows SDK, but Microsoft has now patched it (or removed the validation check) in the desktop AppInstaller.  This bug had prevented us from using what Microsoft calls “Flexible Virtualization”.  See next item also.
  • Added new feature that offers a new Available fixup to add “Flexible Virtualization” to the package.  See our White Paper on what this is for and how it can be used: Flexible Virtualization (PackageWriteVirtualization) The fixup will add both the Desktop6 and Virtualization Properties, along with the unvirtualizedResources Capability, to the AppXManifest.  If the PSF MfrFixup is also used in the package, it also adds the override configuration needed in the Config.Json configuration for the fixup.  Also added a command line option /AutoAddfileSystemWriteVirtualization to turn this fixup into a recommended fixup for command-line fixing of packages.

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 Editor Download (tmurgent.com)

By Tim Mangan

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