TMEditX  The Ultimate MSIX Package Editor plus TmMsixDeploy To Documentation Index

TMEditX Analysis and Fixes

 

 
The TMEditX Analysis menu tab at the top of the display provides access to package analysis results and fixes.  The tool will investigate the intent of the original installer used during recapture along-side the existing packaged manifest.  The tool can determine many types of issues that may be solved by injecting the PSF into the package, as well as issues solvable by modifying the AppXManifest file.

The analysis tab shows the results of this analysis and offers a number of buttons that can be used to address the issues found.

Start with package cleanup

The tool comes with an impressive exclusion list to help you clean up common unnecessary file and registry items that may slip through the MMPT exclusions.  And of course, you can improve this list yourself.  The advantage of doing this here is that you usually install TMEditX on a machine that you don't constantly revert so you don't lose your improved list.

At the top of the analysis page will be a button to perform the package cleanup and then perform a re-analysis of the remaining package.  You want to run this first, as some of those items may trigger additional fixups, or additional configuration in the fixups, that become unnecessary when the cleanup is performed later.  By the way, you can view all of the file/registry entries to be removed by expanding the specific buttons at the bottom of the analysis page.

Next add the PSF, if needed

If the Psf is to be injected into the package, this should be performed prior to other available actions.

If analysis shows that the PSF is recommended, a list of fixups and reasons for them are shown. The analysis is not able to find all application conditions that lead to needing fixups. The analysis is based upon evidence of file and registry items written by the captured vendor installer, but cannot detect runtime issues such as those leading to need the DynamicLibraryFixup.

You may add the PSF whether or not analysis suggests it. The button will bring up a new window for you to configure Psf components. If suggestions were made, these will already be added to the settings in that window.
This tool contains both 32 and 64 bit versions of following components:
•    PsfLauncher
•    PsfRuntime
•    TraceFixup
•    PsfMonitor
•    FileRedirectionFixup
•    DynamicLibraryFixup
•    RegLegacyFixup
•    EnvVarFixup
•    WaitForDebuggerFixup
•    StartingScriptWrap

Then, perform the remaining actions

The remaining actions will be shown when detected:


FTAs Needing Shell Manifest Support

The packaging tool currently misses certain Shell Verb Commands. This can occur because of how the installer performed the registration, but also the type of file association might be the cause, or having multiple shell verbs against the same file type.

This fix will add them into the manifest. 

Shell Extension Context Menus needing Manifest support.

The packaging tool misses certain Shell Extensions Context Menus that are supportable according to the manifest schemas. This fix will add them into the manifest, however further OS support might be required.


Shell Extension Property Sheet Handler needing Manifest support.

The packaging tool misses certain Shell Extensions that are supportable. This fix will add them into the manifest.


Shell Extension Thumbnail Handler needing Manifest support.

The packaging tool misses certain Shell Extensions that are supportable. This fix will add them into the manifest.


Shell Extension Preview Handler needing Manifest support.

The packaging tool misses certain Shell Extensions that are supportable. This fix will add them into the manifest.


Shell Extension Property Metadata Handler needing Manifest support.

The packaging tool misses certain Shell Extensions that are supportable. This fix will add them into the manifest.


Shell Extension Protocol Handlers needing Manifest support.

The packaging tool misses certain Shell Extensions that are supportable. This fix will add them into the manifest if possible. Currently exe based protocol handlers work, but COM based protocol handlers have issues.


Fonts needing Manifest support.

The packaging tool misses package Fonts that are supportable. This fix will add them into the manifest.


AppPath Registrations needing Manifest support as LoaderSearchOrder.

The packaging tool misses packages with App Paths that are supportable. There are two different issues that this might cause, one for dll search and one for exe search.


This fix will address the DLL search issue by adding them into into the manifest by adding a package level LoaderSearchOrder. Generally, adding the DynamicLibraryFixup to the package will also solve dll loading issues and you may use either (or both).


AppPath Registrations may need Manifest support as ExecutionAlias.

The packaging tool misses packages with App Paths that are supportable. There are two different issues that this might cause, one for dll search and one for exe search.


This fix will address the EXE search issue by adding them into into the manifest by adding an application level ExecutionPathAlias. The fix ensures that the app is findable when trying to run the command by just using the filename of the exe and not the path.


ETW Manifest Files may need Manifest support.

The packaging tool misses packages with Event Trace for Windows Manifest files that will be someday supported.

  • At this time the support exists in the new schemas, but has yet to be added to the operating system (AppInstaller). 
  • Adding the support will not harm the package, and should work once OS support is added.  Of course, with any unsupported future feature there is a chance that things may change before this support arrives.
  • Without this support, the packaged application should be able to log events, but the formatter will be missing making it much more difficult to understand the logged data. 


Firewall Configuration rules may need Manifest support.

The packaging tool currently filters out the registry items associated with Windows Firewall Rule configuration (although they are not part of the registry filter list). When this bug is fixed it is anticipated that it still might not migrate those settings into the AppXManifest.  If they show up in the registry and are not found in the Manifest, this will be detected and remediated.

Unnecessary File Removal.

Files detected in the package that are from common windows background activities to be removed.  While our default list is pretty good, you can add to the list by right-click on a folder or file in the editor. You'll still need to remove the folder/file in this package (or re-run the analysis) but it will be in the list for future packages. 

Unnecessary Registry item Removal.

Registry items detected in the package that are from common windows background activities to be removed.  While our default list is pretty good, you can add to the list by right-click on a registry key or item in the editor. You'll still need to remove the key/item in this package (or re-run the analysis) but it will be in the list for future packages.


Manifest Schema Cleanup.

Some versions of the MMPT adds schema references to inappropriate schemas like Iot and Mobile. While these cause no real harm when not used, it does generate an error hidden in the event logs. Furthermore, removing the reference will ensure the accuracy of schema validation operations.