{"id":3404,"date":"2022-04-27T17:35:17","date_gmt":"2022-04-27T21:35:17","guid":{"rendered":"https:\/\/www.tmurgent.com\/TmBlog\/?p=3404"},"modified":"2022-06-08T13:49:54","modified_gmt":"2022-06-08T17:49:54","slug":"tripple-releases-for-awesome-msix-packaging","status":"publish","type":"post","link":"https:\/\/www.tmurgent.com\/TmBlog\/?p=3404","title":{"rendered":"Tripple Releases for awesome MSIX packaging"},"content":{"rendered":"<style>.kadence-column_5e0860-e9 > .kt-inside-inner-col{border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;}.kadence-column_5e0860-e9 > .kt-inside-inner-col,.kadence-column_5e0860-e9 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column_5e0860-e9 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column_5e0860-e9 > .kt-inside-inner-col{flex-direction:column;}.kadence-column_5e0860-e9 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column_5e0860-e9 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column_5e0860-e9{position:relative;}@media all and (max-width: 1024px){.kadence-column_5e0860-e9 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column_5e0860-e9 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column inner-column-1 kadence-column_5e0860-e9\"><div class=\"kt-inside-inner-col\">\n<p>This post documents the April (2022) releases for MSIX.&nbsp; There are three parts:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>PSF v2022.04.27<\/li><li>PsfTooling 5.2.0.0<\/li><li>TMEditX&nbsp; 2.2.0.0<\/li><\/ol>\n\n\n\n<p>Each have their own section in this post below.<\/p>\n\n\n\n<p><\/p>\n<\/div><\/div>\n\n\n<style>.kadence-column_0acc6c-11 > .kt-inside-inner-col{border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;}.kadence-column_0acc6c-11 > .kt-inside-inner-col,.kadence-column_0acc6c-11 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column_0acc6c-11 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column_0acc6c-11 > .kt-inside-inner-col{flex-direction:column;}.kadence-column_0acc6c-11 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column_0acc6c-11 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column_0acc6c-11{position:relative;}@media all and (max-width: 1024px){.kadence-column_0acc6c-11 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column_0acc6c-11 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column inner-column-1 kadence-column_0acc6c-11\"><div class=\"kt-inside-inner-col\">\n<h2><span style=\"background-color: #3366ff;\">New in <\/span><span style=\"background-color: #3366ff;\">PSF for v2022.04.27<\/span><\/h2>\n<\/div><\/div>\n\n\n\n<p><em><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-3368\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/01\/PsfLogo-150x150.png\" alt=\"Psf Logo\" width=\"150\" height=\"150\"\/>The Package Support Framework (PSF) was originally an open-source project to help Win32\/DotNet applications run when inside an MSIX Container.&nbsp; TMurgent has taken up the support for the PSF in our own fork<\/em>&nbsp;<a href=\"https:\/\/github.com\/TimMangan\/MSIX-PackageSupportFramework\" target=\"_blank\" rel=\"noopener\">here on GitHub<\/a>. The changes below cover changes made since the February 2022 release:<\/p>\n<ul>\n<li>Fixed a long-standing flaw in Detours.<\/li>\n<li>Added &#8220;Argument virtualization&#8221; in PsfLauncher.&nbsp; If the config.json contains arguments for the executable that PsfLauncher is to run, the arguments may contain filepath information.&nbsp; If so, and the filepath references a native location, the launcher will now look to see if there is a filepath in the appropriate VFS location inside the package.&nbsp; It will then alter the arguments to point to the WindowsApps location for the package VFS folder.<\/li>\n<li>Improved support for PsfLauncher to start processes that are outside of the package and run them inside the package with configured fixups.&nbsp; This affects packages that name this executable (like notepad or wordpad) in the executable field for PsfLauncher configuration rather than rely on file type associations against a data file.<\/li>\n<li>Added support for missing intercept function in FileRedirectionFixup.&nbsp; The function &#8216;SearchPath&#8217; is now supported.&nbsp; Most software uses FindFirstFile\/FindNextFile but we found some apps using this API instead.<\/li>\n<li>Improvements in the layering to several FileRedirectionFixup intercepts to match the previous changes made in FindFirstFile in the February release.&nbsp;<\/li>\n<li>Added better handling of path matching to ensure case-insensitive testing is performed.<\/li>\n<li>Improvements made to debug logging.&nbsp; These changes make it possible to produce a log parser tool planned for TMEditX 2.2 release.<\/li>\n<li>Updated PSF documentation for PsfLauncher with new example.<\/li>\n<li>Updated PSF Test code.<\/li>\n<li>Added a new Wiki section to the GitHub to provide documentation on the PSF more appropriate for IT pros, to supplement the existing developer-oriented documentation that is directly with the code.<\/li>\n<\/ul>\n\n\n<style>.kadence-column_cbedea-bb > .kt-inside-inner-col{border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;}.kadence-column_cbedea-bb > .kt-inside-inner-col,.kadence-column_cbedea-bb > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column_cbedea-bb > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column_cbedea-bb > .kt-inside-inner-col{flex-direction:column;}.kadence-column_cbedea-bb > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column_cbedea-bb > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column_cbedea-bb{position:relative;}@media all and (max-width: 1024px){.kadence-column_cbedea-bb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column_cbedea-bb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column inner-column-1 kadence-column_cbedea-bb\"><div class=\"kt-inside-inner-col\">\n<p><\/p>\n\n\n\n<p><\/p>\n<\/div><\/div>\n\n\n<style>.kadence-column_942d9c-e9 > .kt-inside-inner-col{border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;}.kadence-column_942d9c-e9 > .kt-inside-inner-col,.kadence-column_942d9c-e9 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column_942d9c-e9 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column_942d9c-e9 > .kt-inside-inner-col{flex-direction:column;}.kadence-column_942d9c-e9 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column_942d9c-e9 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column_942d9c-e9{position:relative;}@media all and (max-width: 1024px){.kadence-column_942d9c-e9 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column_942d9c-e9 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column inner-column-1 kadence-column_942d9c-e9\"><div class=\"kt-inside-inner-col\">\n<h2><span style=\"background-color: #3366ff;\">New in <\/span><span style=\"background-color: #3366ff;\">PsfTooling 5.2.0.0<\/span><\/h2>\n<\/div><\/div>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-3420 size-medium\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/04\/PsfTooling-300x189.png\" alt=\"\" width=\"300\" height=\"189\" srcset=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/04\/PsfTooling-300x189.png 300w, https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/04\/PsfTooling.png 607w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><em>PsfTooling is the free tool to work in conjunction with the Microsoft MSIX Packaging Tool.&nbsp; &nbsp;<a href=\"https:\/\/www.tmurgent.com\/appv\/en\/resources\/tools-downloads\/msix-tools\/128-msix-tools\/557-psftoolingv48\" target=\"_blank\" rel=\"noopener\">[Download_Page]<\/a><\/em><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Includes all fixes from PSF v2022.04.27 and v2022.04.14 releases to increase application compatibility.<\/li>\n<li>Add Personal folder to supported VFS list.<\/li>\n<li>Dereference Environmental Variables in filename paths.<\/li>\n<li>Fix for AppVPackageDrive references in config.json file.<\/li>\n<li>Add detection to determine if DynamicLigraryFixup is needed.<\/li>\n<li>Add support for new architecture flag in DynamicLibraryFixup.<\/li>\n<li>Added an exclusion option (defaulted on) for certain folders (such as the Desktop folder) in the FRF configuration.<\/li>\n<li>Added an exclusion for PowerShell processes to not receive fixups (as these will crash the PowerShell process).<\/li>\n<li>Automatically add the &#8216;standard 3&#8217; rules as default whenever the RegLegacyFixup is requested.<\/li>\n<\/ul>\n\n\n<style>.kadence-column_4a096c-80 > .kt-inside-inner-col{border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;}.kadence-column_4a096c-80 > .kt-inside-inner-col,.kadence-column_4a096c-80 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column_4a096c-80 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column_4a096c-80 > .kt-inside-inner-col{flex-direction:column;}.kadence-column_4a096c-80 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column_4a096c-80 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column_4a096c-80{position:relative;}@media all and (max-width: 1024px){.kadence-column_4a096c-80 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column_4a096c-80 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column inner-column-1 kadence-column_4a096c-80\"><div class=\"kt-inside-inner-col\">\n<p><\/p>\n\n\n\n<p><\/p>\n<\/div><\/div>\n\n\n<style>.kadence-column_bf6e26-ec > .kt-inside-inner-col{border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;}.kadence-column_bf6e26-ec > .kt-inside-inner-col,.kadence-column_bf6e26-ec > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column_bf6e26-ec > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column_bf6e26-ec > .kt-inside-inner-col{flex-direction:column;}.kadence-column_bf6e26-ec > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column_bf6e26-ec > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column_bf6e26-ec{position:relative;}@media all and (max-width: 1024px){.kadence-column_bf6e26-ec > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column_bf6e26-ec > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column inner-column-1 kadence-column_bf6e26-ec\"><div class=\"kt-inside-inner-col\">\n<h2><span style=\"background-color: #3366ff;\">New in TMEditX 2.2.0.0<\/span><\/h2>\n<\/div><\/div>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-3421\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/04\/TMEditXLogo.scale-100.png\" alt=\"\" width=\"150\" height=\"150\" \/><em>TMEditX is the licensed and more capable tool for fixing up MSIX packages since it doesn&#8217;t have to depend on the Microsoft MSIX Packaging Tool to create the final package.\u00a0\u00a0<a href=\"https:\/\/www.tmurgent.com\/appv\/en\/buy\/tmeditx\/tmeditx-download\" target=\"_blank\" rel=\"noopener\">[Download_page]<\/a><\/em><\/p>\n<p>\u00a0<\/p>\n<p>The TMEditX package contains several applications. Changes to the apps are separated by app below:<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>TMEditX<\/strong> Changes:<\/span><\/p>\n<ul>\n<li>Includes all fixes from PSF v2022.04.27, v2022.04.14, and v2022.02.28 releases to increase application compatibility.<\/li>\n<li>Adds support for new architecture flag in DynamicLibraryFixup<\/li>\n<li>Made Timestamping of MSIX packages optional (by customer request).<\/li>\n<li>Added exclusion to PowerShell processes as fixups may not be injected into it.<\/li>\n<li>Added certain excluded folders to FRF by default (such as Desktop folder).<\/li>\n<li>Consolidate LoadSearchOrder and ExectutionAlias found fix items.<\/li>\n<li>Allow fixup dlls to contain path information (possibly generated by other tooling).<\/li>\n<\/ul>\n<p><span style=\"text-decoration: underline;\"><strong>TMMsixDeploy<\/strong> changes:<\/span><\/p>\n<ul>\n<li>Added ability to inject a cmd process into a deployed package.<\/li>\n<\/ul>\n<p><span style=\"text-decoration: underline;\"><strong>TMParsePsfDebugLog<\/strong>.<\/span>\u00a0<\/p>\n<ul>\n<li>This is a new program added to the package in this release.\u00a0 If you use TMEditX to add the debug version of the PSF into a package, you can use a tool like DebugView to capture the debug port logging.\u00a0 This log can be tedious to read, so we now have a log reader that will organize the information and make it easier to find what you need.\u00a0 Just save the output from DebugView to a text file and open in this tool.<\/li>\n<li>Video about this tool:\n<div style=\"width: 750px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-3404-1\" width=\"750\" height=\"400\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/04\/PsfParseDebugLog-1.mp4?_=1\" \/><a href=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/04\/PsfParseDebugLog-1.mp4\">https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/04\/PsfParseDebugLog-1.mp4<\/a><\/video><\/div>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This post documents the April (2022) releases for MSIX.&nbsp; There are three parts: PSF v2022.04.27 PsfTooling 5.2.0.0 TMEditX&nbsp; 2.2.0.0 Each have their own section in this post below. New in PSF for v2022.04.27 The Package Support Framework (PSF) was originally an open-source project to help Win32\/DotNet applications run when inside an MSIX Container.&nbsp; TMurgent has&hellip; <a class=\"more-link\" href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=3404\">Continue reading <span class=\"screen-reader-text\">Tripple Releases for awesome MSIX packaging<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[47,53,57,56],"tags":[],"class_list":["post-3404","post","type-post","status-publish","format-standard","hentry","category-appv5","category-msix","category-packaging","category-psf","entry"],"_links":{"self":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/3404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3404"}],"version-history":[{"count":22,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/3404\/revisions"}],"predecessor-version":[{"id":3445,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/3404\/revisions\/3445"}],"wp:attachment":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}