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]
Version 3.2 of TMEditX is now released. It rolls up a number of new features, improvements, and bug-fixes for this spring season. The tool consists of three major applications, plus the PSF. The PSF has not changed in this release, nor has the application ParsePsfDebugLog. Two additional tools, used by the major applications, have also been added.
The focus of this release is to increase both the amount of effort needed to fix packages, and improve the level of app-compat (slightly).
- Reorganized the Analysis and Fixups page. As more and more types of fixes are included to the product, order of fixing becomes an issue. We now have 4 areas on the page, and you work the fixes from top to bottom of the page. Furthermore, when a fix is applied, a re-analysis is automatically run if appropriate. These 4 areas include:
- Pre-PSF. This includes package cleanup (file/registry), Portable Apps detection fixes, and certain Squirrel fixes.
- Recommended Fixes. You want these.
- Available Fixes. You use these only if testing the package shows they are needed.
- Added Portable App detection to the analysis. A specific fix is possible, but more often it just recommends against adding the PSF since it is not normally needed for these apps.
- Added detection of apps without any application entry-points as these should not have the PSF recommended either. Often, this is a modification package, but there are packages consist of services or protocol handlers only.
- Added the ability to replace the graphics png files for the package in the “Assets” tab of the editor.
- Allow for fixing PreviewHandler and other Shell Extensions to support the case where there is no application entry in the manifest. TMEditX introduces a new exe called “NonApplication.exe” that is added to the package (without a shortcut). This also adds a logo to the package rather than have it be blank.
- Upgraded the User Interface to support “Accessibility for Automation”. This not only helps with screen reader apps (like JAWS), but also allows for tools like PowerApps to automate UAT style fixing and testing.
- Revamped and improved the in-product documentation.
- Added new recommended fix to update Uap3:ApplicationAlias entries to Uap5:ApplicationAlias and Uap10:Subsystem. This allows support for more applications.
- Add new fonts using the Uap7:SharedFonts instead of Uap3. This increases the type of fonts that can be supported. Signtool is generally where we saw those problems when UAP3 was used.
- Detect and fix bad desktop7:shortcut references caused by the MMPT. These occur if the MMPT excluded the lnk file, excluded the icon pointed to by the lnk, or if it was an “advertised shortcut”, or if something needed to be de-variablized.
- Add support for more complex scenarios with shell extensions that are ignored by the MMPT. Also fixed issues where some of these fixups would lead to duplicate entries in the manifest, causing the package build to fail.
- Add support for building packages that have international style filenames. Upgraded to the newest MakeMsix, MakeAppX, and signtool programs available.
- Add support for more popular shell extensions not supported by the MMPT.
- Add detection of applications that use Squirrel and a fixup that bypasses and de-thangs the updater. Also, if PSF is used, it will add the EnvVar fixup and supply the normal environment variable to disable the updater.
- Add a new detection and fix for packages that reference a file in the AppXManifest that is not in the package ingredients.
- On “MSIX” tab, “Installed Packages”, added several new right-click options. Two new sub-menus, for items that run either inside or outside of the package are provided. These commands expand your debugging capabilities without having to resort to other third party tools for these functions:
- Outside of the package, you can run commands to Browse to Install Folder, Browse to UserData Folder, View the AppXManifest file, or run a new program ViewMetaData on either the package install folder or user data folder. This new tool shows Attribute, Sparse, Extended Attribute, and Reparse metadata. This information is helpful in troubleshooting InstalledLocationVirtualization (ILV) issues.
- Inside of the package, you can run commands including Cmd, Windows Terminal, and RegEdit. If the package has PSF and ILV already, then you can also modify package files for testing including Adding EnvVar fixup. And you can run ViewMetaData on the package install or user data folders from inside the container too.
- On “MSIX” tab, “Installed Packages”, added a display of the MMPT or TMEditX version used to last edit the package (when available).
- On “MSIX” tab, “UNC Packages”, added option to update the package using TMEditX with default analyzed fixes, or to manually edit.
- Significantly improved re-analysis of the package, skipping portions that should not have changed.
- Added support for the Desktop10 Schema.
- Added a new fixup for IconHandler using Desktop10 schema, but ended up disabling it awaiting fixes from Microsoft.
- Fixed issues with both the “Squirrel Updater” and “Protocol Handler” fixup types. These issues would appear when signtool was used.
- Fix for situation where Thumbnail Shell Extension Handler fixup is applied to an application when other shell extensions are also in play.
- Fix for situation where PropertyHandlers (Property Metadata) Shell Extension Handler fixup is applied to an application when other shell extensions are also in play. Also detect certain types of PropertyHandlers not supported by signtool and add them as a comment in the manifest instead.
- Don’t assume a file named config.json is for the PSF. Detect using the contents of the file also. Spyder, for example, uses this filename for its own configuration.
- Fix bug on “Installed Packages” display that was preventing config.json menu to appear as a right-click.
- Fix bug that sometimes cause refershes to fail.
- Improved performance on refreshes.