{"id":4098,"date":"2025-09-19T12:02:03","date_gmt":"2025-09-19T16:02:03","guid":{"rendered":"https:\/\/www.tmurgent.com\/TmBlog\/?p=4098"},"modified":"2025-09-19T12:02:03","modified_gmt":"2025-09-19T16:02:03","slug":"new-in-psf-v-2025-09-19","status":"publish","type":"post","link":"https:\/\/www.tmurgent.com\/TmBlog\/?p=4098","title":{"rendered":"New in PSF v.2025.09.19"},"content":{"rendered":"\n<p align=center><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"300\" class=\"wp-image-3368\" style=\"width: 300px;  padding: 5px\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/01\/PsfLogo.png\" alt=\"Psf Logo\" srcset=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/01\/PsfLogo.png 500w, https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/01\/PsfLogo-300x180.png 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p><em>The Package Support Framework (PSF) was originally a Microsoft open-source project to help Win32\/DotNet applications run when inside an MSIX Container.\u00a0 TMurgent has taken up the support for the PSF in our own fork <a href=\"https:\/\/github.com\/TimMangan\/MSIX-PackageSupportFramework\" target=\"_blank\" rel=\"noopener\">here on GitHub<\/a>.<\/em><\/p>\n\n\n\n<p>Another month, more PSF goodness!\u00a0 This month brings another PSF release with a fix for certain apps, improvements in debugging, and some changes to help us determine if there are some APIs that we need to add intercept fixups for down the road.\u00a0 Here are the details:<\/p>\n<ol>\n<li>\n<p><strong>MfrFixup.<\/strong> We added additional folders to the mapping list used in MfrFixup that we found were needed in some particularly older applications.\u00a0 These additional folders should be treated as exclusions, as the package should never include files under these folders and any files written should go to the native location to be available from outside of the package.\u00a0 An example would be the &#8216;Downloads&#8217; folder.<\/p>\n<\/li>\n<li><strong>Logging Changes.<\/strong> Previously, you would choose either the release or debug binaries of the PSF to affect the logging that the PSF does to the debug console port.\u00a0 In this release we simply the choices, and unless you plan to use a\u00a0 code debugger on your package, you will always just use the release binaries.\u00a0 We added a new configuration option to the config.json file that allows you to set the level of debugging in the json file.\n<p>Documentation on these levels are on the <a href=\"https:\/\/github.com\/TimMangan\/MSIX-PackageSupportFramework\/wiki\/Config.Json\">Wiki page for Config.Json<\/a>.\u00a0 The default value of 2 provides the same level of debug output as was always available in the prior release builds of the PSF.\u00a0 A value of 4 provides the same level of debug output as the debug builds in the past.\u00a0 But other values are also available as documented.<\/p>\n<p>Some formatting of the logging was also cleaned up, which is very useful when using the ParsePsfDebugTool to read the output.<\/p>\n<p>Note: It is possible to change the debug level in the config.json file on your test system by using MsixDeploy (part of the free community tools TMEditX Tools) to increase the debug level without having to open the package for edit.\u00a0 On the MSIX tab, select the &#8216;Installed Packages&#8217; radio button and right click on the package; in the popup menu select &#8216;Invoke inside Pkg Container&#8217; and &#8216;Edit Config.Json&#8217; menu.\u00a0 This will update the file in the redirection area of your package.<\/p>\n<\/li>\n<li><strong>New informational intercepts<\/strong> were added to a few APIs that applications use that we want to gather information about.\u00a0 We will use this information to determine if full intercept fixups are needed over the next 6 months.\u00a0 The APIs that we are worried about are used for Named Pipes, and for COM and ActiveX activations.\u00a0 These informational intercepts are in PsfRuntime for now, but any actual fixup would be either in MfrFixup or a potential new COMFixup.<\/li>\n<\/ol>\n<p>This version of the PSF will be included in future releases of several vendor products, including:<\/p>\n<ul>\n<li>PsfTooling\u00a0 (next release after 6.14)<\/li>\n<li>TMEditX Editor (next release after 6.1)<\/li>\n<li>TMEditX Tooling (next release after 6.1)<\/li>\n<\/ul>\n\n\n\n<p class=\"has-subtle-background-background-color has-text-color has-background wp-block-paragraph\"><strong><em>For those unaware, PSF stands for&nbsp;<\/em>Package Support Framework, an open-source utility that I contribute to for helping traditional Win32 and DotNet applications run inside the MSIX packaging container. This article contains information regarding new contributions. <\/strong><\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Another month, more PSF goodness!\u00a0 This month brings another PSF release with a fix for certain apps, improvements in debugging, and some changes to help us determine if there are some APIs that we need to add intercept fixups for down the road.\u00a0 Here are the details: MfrFixup. We added additional folders to the mapping&hellip; <a class=\"more-link\" href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=4098\">Continue reading <span class=\"screen-reader-text\">New in PSF v.2025.09.19<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[56],"tags":[52,54],"class_list":["post-4098","post","type-post","status-publish","format-standard","hentry","category-psf","tag-msix","tag-psf","entry"],"_links":{"self":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/4098","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=4098"}],"version-history":[{"count":2,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/4098\/revisions"}],"predecessor-version":[{"id":4100,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/4098\/revisions\/4100"}],"wp:attachment":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4098"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4098"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}