TMEditX 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]
More new features and fixes to improve your packaging! The PSF version is release the same as for 4.3, which is v2024.02.04, plus a small patch for the next release, from the TimMangan branch.
TMEditX Features and Fixes
New Command Line Option: /AutoSkipPsf
This new command line option is for use in automated packaging. It is to be used in conjunction with the /ApplyAllFixes to opt out of any injection of the PSF, even if the analysis indicates it is needed.
Updates on what to fix with VCRuntime fix
Based on feedback and our own testing, we determined that there are situations where VCRuntime components were causing issues. The following items are addressed:
- Ensure VCRuntime dependencies for all PSF components are satisfied. These were missing for the Trace and FileRedirectionFixup components (which we don’t use much these days).
- Updated the minimum version field of the VCLibs dependency item. This was needed due to newer versions of the PSF in some packages. The new minimum is 14.0.32530, which is the latest release from Microsoft at this time.
- New command line option /AutoFixVCRuntimes This new command line option is also for use in automated packaging. The option makes the VCRuntime fix (removing VCRuntime components from the package and replacing it with a package dependency) a recommended fix for the package, if analysis indicates it. Previously, this fix defaulted to the Available list, and we have a configuration option to move it to the recommended list, but this provides a command line method of making the request instead.
-
VCRuntime replacement criteria. We determined that there are some situations where the VCRuntime components (or at least some of the components) should not be replaced in a package. This is because there are two possible dependent packages (x86 and x64) but we can only replace the x64 when packaging was performed on an x64 system, which is the norm these days.
Also, we detected some executables with an internal application manifest that also requests loading of the VC Runtimes, and it appears that those type of dll loadings do not pull from the VCLibs framework package, even when listed as a dependent package.
These changes should prevent the VCRuntime fix from breaking anything anymore.
Start Menu Folders
Two new fixups were added affecting how the start menu will look for the package.
A Pre-psf fixup is added anytime we detect that the original application installer created a shortcut under a folder. This fix will add back the folder (technically a startup folder group). The new group is limited to only one folder deep, so if there were subfolders in the original shortcut only the top-level folder is used.
A recommended fixup is added anytime we detect that there is a startup folder group in use with only one shortcut in it. The fix will be to remove the folder group, promoting the shortcut to the top level.
These fixes are not enabled by default, however there is both a new configuration option, and a command line option /AutoFixStartMenuFolders to enable the fixups.
Bugfix for original shortcuts to cmd/powershell exe
While normally the application would set the target of the shortcut to the cmd or ps1 file and use the FTA, there are apps that will set the target to the cmd or powershell exe, which is not in the package and ignored by the MMPT.
This bugfix detects those rogue shortcuts and adds them appropriately back into the package using PsfLauncher.
UI Help
Added a scrollbar to the PsfEditor window for smaller monitors.
A tooltip has been added to the analyzed EXE tab field indicating the presence of an internal application manifest. The tooltip will display any dependent dlls listed in the manifest.
Fixed a bug where the PSF button might disappear after applying the pre-psf fixes.
“Works in Progress” Status
The following fixups are in a “work in progress” status. This means that the fixups solve problems with a number of apps, but it is possible that applying the fixup might break other apps. This section will highlight the status of those items at the time of release.
- COM Anti-disregardation is a fixup designed to bring in missing COM registrations disregarded by the Microsoft MSIX Packaging Tool. In the previous release customers found packages that would not build or install after the changes. These turned out to be caused by captures that caught parts of background installs that should not be in the package (like an update to Microsoft Edge). We have made changes in this release that should make this better, but customers are advised that they need to clean up their capture snapshots.
With clean snapshots, we have a high confidence in the COM Anti-disregardation fixup, but continue to monitor customer feedback before removing this from the list.
- VC Runtime Replacement should be considered experimental at this point. The purpose is not to fix something, but replace VCRuntimes with an external dependency that is easier to maintain. Unfortunately, we have found situations where removing them from the package does not work, such as when the app has an internal manifest. We also have found that we can replace only the x64 components (due to Microsoft limitations). By default, the detection is placed in the “available” list, however we did add a configuration option (and command line option) to make the fix “recommended”.
At this time, we do not recommend routinely applying the VCRutime fixup, but feel free to experiment if you wish.
Where to find the release
The latest version of TMEditX 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 (tmurgent.com)