<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Master Packager blog Blog</title>
        <link>https://blog.masterpackager.com/</link>
        <description>Master Packager blog Blog</description>
        <lastBuildDate>Mon, 06 Jul 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Remove an HKCU Registry Value for All Users (Without Removing the Key)]]></title>
            <link>https://blog.masterpackager.com/delete-hkcu-registry-value-all-users</link>
            <guid>https://blog.masterpackager.com/delete-hkcu-registry-value-all-users</guid>
            <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Luca, one of our Master Packager users, wrote us an email with a question: Is it possible to remove just a registry value without removing the entire registry key for all users?]]></description>
            <content:encoded><![CDATA[<p>Luca, one of our Master Packager users, wrote us an email with a question: <strong>Is it possible to remove just a registry value without removing the entire registry key for all users?</strong></p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/rrn_regedit_before-81d49777835d3eb9d273a5e8e8ee50c5.png" width="931" height="474" class="img_ev3q"></p>
<p>We replied with this blog post.</p>
<!-- -->
<p>Yes. It is possible - just not straight out of the box. Let me show you how to do that with <a href="https://www.masterpackager.com/pricing/master-packager#eur" target="_blank" rel="noopener noreferrer" class="">Master Packager Suite Community (free)</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="steps">Steps<a href="https://blog.masterpackager.com/delete-hkcu-registry-value-all-users#steps" class="hash-link" aria-label="Direct link to Steps" title="Direct link to Steps" translate="no">​</a></h2>
<ol>
<li class="">
<p>Create a new MSI using Master Packager.</p>
<p><img decoding="async" loading="lazy" alt="Create a new MSI in Master Packager." src="https://blog.masterpackager.com/assets/images/rrn_new_msi-4e0928bbe609141b1b9bb526578cd3fc.png" width="1329" height="728" class="img_ev3q"></p>
</li>
<li class="">
<p>Go to <strong>Custom Actions -&gt; Predefined Actions -&gt; Add new Predefined Action</strong>. These are our pre-built MSI Custom Actions with a simple user interface to solve common app packaging problems with an MSI, and they work excellently under the system account that Intune and Configuration Manager use.</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/rrn_predefined_actions-827e58bd298ba56374aea6d30588adef.png" width="1335" height="734" class="img_ev3q"></p>
</li>
<li class="">
<p>Select and add <strong>"Apply HKCU registries to all users"</strong>. Why not "Remove HKCU registries from all users"? Because that one is designed to remove a whole registry key, however the ask is to remove only a specific value. For that we do not have a simple UI, yet.</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/rrn_predefined_action_apply_hkcu-287f93df30d7435135942c07b72bb42c.png" width="1337" height="739" class="img_ev3q"></p>
</li>
<li class="">
<p>Edit the registry content that needs to be removed. The trick here is to replace the value data with a hyphen "-".</p>
</li>
</ol>
<p>Before:</p>
<div class="language-reg codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-reg codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">Windows Registry Editor Version 5.00</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">[HKEY_CURRENT_USER\Software\I Need This Key Forever]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">"You Can Delete Me"="Please"</span><br></div></code></pre></div></div>
<p>After:</p>
<div class="language-reg codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-reg codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">Windows Registry Editor Version 5.00</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">[HKEY_CURRENT_USER\Software\I Need This Key Forever]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">"You Can Delete Me"=-</span><br></div></code></pre></div></div>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/rrn_reg_remove_name_value-cd0562f54e761e8b25aa83a14341d3a5.png" width="1007" height="545" class="img_ev3q"></p>
<p>This change will make the "Apply HKCU registries to all users" action delete the registry value instead of setting it.</p>
<ol start="5">
<li class="">
<p>By default, "Apply HKCU registries to all users" is executed during installation. If that is the intent, then nothing else needs to be done. However, if you want to remove this registry value while leaving the key intact on MSI uninstallation, then go to the <strong>Master Packager Table Editor</strong>. Select <strong>InstallExecuteSequence</strong> and replace the Condition values for the <code>MP_ApplyHKCUForAllUsers</code> and <code>MP_SetApplyHKCUForAllUsers</code> actions from <code>NOT REMOVE</code> to <code>REMOVE~="ALL"</code>.</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/rrn_ca_condition-190212e004a807d98b5c9fe88db420d2.png" width="1333" height="731" class="img_ev3q"></p>
</li>
</ol>
<p>Do not forget to add a name, version, manufacturer and a nice icon to the MSI.</p>
<p>Also, if you are creating an MSI that only uses a Custom Action, the MSI will finish installing with an error. Every MSI needs at least one Feature and Component. If you were to create a file, registry entry, etc., Master Packager would create a Feature and Components for you - but not in the case where there is only a Custom Action. To create a Feature and Component, go to <strong>Master Packager Advanced Editor -&gt; Features</strong> and right-click to add them.</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/rrn_features_components-3cead85c79fd8abba7f175dacc316055.png" width="1342" height="733" class="img_ev3q"></p>
<p>And it is done. We have an MSI that removes an HKCU registry value while leaving the key intact. All of this works under a system account installation with your deployment solution.</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/rrn_regedit_after-527e03d8b298c1632cd16b985f7990eb.png" width="986" height="468" class="img_ev3q"></p>
<p><strong>Application packaging is not just about finding a silent switch.</strong> It is an art to ensure your business applications are there when they need to be, and in a state that helps your business be the most efficient.</p>
<p>And for that it is good to be a Master Packager who knows how to remove a registry value without removing the key for all users while installing it from your favorite deployment system.</p>
<p>If you want to learn more about the art of application packaging and be able to package any Win32 app for your organization, check out our <a href="https://www.masterpackager.com/become-master-packager" target="_blank" rel="noopener noreferrer" class="">Master Packager courses</a>, where we share our decade of knowledge in a 5-day remote workshop.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Cloud Tech Tallinn Conference - It was fun!]]></title>
            <link>https://blog.masterpackager.com/cloudtechtallinn2026</link>
            <guid>https://blog.masterpackager.com/cloudtechtallinn2026</guid>
            <pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[It was our first time attending Cloud Tech Tallinn Conference – key insights, experiences, and highlights from the event and community discussions.]]></description>
            <content:encoded><![CDATA[<p>This was the fourth year that Cloud Tech Tallinn took place in chilly Estonia, and it was our first time attending. It was a short three-hour drive from Latvia, where the Master Packager team is based.</p>
<!-- -->
<p>This was the fourth year that <a href="https://cloudtechtallinn.com/" target="_blank" rel="noopener noreferrer" class="">Cloud Tech Tallinn</a> took place in chilly Estonia, and it was our first time attending. It was a short three-hour drive from Latvia, where the <a href="https://www.masterpackager.com/contacts" target="_blank" rel="noopener noreferrer" class="">Master Packager team is based</a>.</p>
<p>Every year, we try to support the community by sponsoring one to three events. These are great opportunities to share our knowledge and show off our software capabilities during sessions and at our booth. Our good friends from Robopack and Patch My PC were there as well.</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/ctt_4_2-05d686015b-fcb857d5018d8b65b55249abad666c36.jpg" width="1586" height="819" class="img_ev3q"></p>
<p>The event took place in the Tallinn Creative Hub. This industrial-looking historic building used to be a boiler house for a power plant. Its 700-square-meter boiler room still contains two giant boilers that played a huge role in the city’s industrial history. Edijs and I had a great view of them; as video game fans, we felt like we were standing right inside a level!</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/ctt_3-d8659c1499-2d38f4c7f6594348afa2a529363924e0.jpg" width="894" height="1192" class="img_ev3q"></p>
<p>We also got many compliments on our “I am Master Packager” mouse mats. A few attendees even called them “baby yoga mats,” ha ha! :)</p>
<p>Our session on standardizing packaging workflows for Intune attracted a lot of interest. It was great to see so many companies inspired to <a href="https://www.masterpackager.com/demo" target="_blank" rel="noopener noreferrer" class="">book a demo</a> and learn the specific steps to bring packaging standardization to their own environments.</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/ctt_5_2-64abcf5839-f30beedea665de2d2eaa9ab58ef67221.jpg" width="1415" height="916" class="img_ev3q"></p>
<p>Many speakers talked about programming with AI, and we were lucky enough to attend a few sessions ourselves. They were actually fun! Usually, tech sessions can be quite dry, but these speakers were engaging and focused on real-life lessons.</p>
<p>Since this conference attracted so many developers, we saw unexpectedly high interest in the <a href="https://www.masterpackager.com/developer" target="_blank" rel="noopener noreferrer" class="">Master Packager Dev</a> solution. This tool lets developers automate MSI and MSIX creation directly within their DevOps CI/CD pipelines. When they heard about the solution, many seemed ready to say, “Sounds amazing, but we probably can’t afford it,” since they’re used to these tools costing thousands of dollars per user. But when they learned <a href="https://www.masterpackager.com/pricing/master-packager-dev" target="_blank" rel="noopener noreferrer" class="">our actual pricing</a>, the reaction was usually, “Wow, I’ll take it!”</p>
<p>We’re committed to removing the obstacles that prevent vendors from creating the high-quality Windows application packages that end-users love, enterprises want, and the OS needs.</p>
<p>The next conference we’ll be sponsoring as a Gold partner is our favorite app management event - <a href="https://appmanagevent.com/" target="_blank" rel="noopener noreferrer" class="">AppManagEvent</a>. We’ll be there with a booth and a special session, and we hope to see you there in person!</p>
<p>Have an easy or hard package, because you’re a Master Packager!</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/ctt_6-d77fc79884-405505886a5449caa5df1907b88a5c40.jpg" width="1320" height="981" class="img_ev3q"></p>
<p>p.s.</p>
<p>Our <strong>“Become a Master Packager”</strong> remote workshop is fully booked, and we had to say no to a few people. If you’d like to learn how to package any app with us, register <a href="https://www.masterpackager.com/become-master-packager" target="_blank" rel="noopener noreferrer" class="">here</a>. If there’s enough interest, we may run another workshop this spring.</p>
<p>Toms</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing Master Packager Dev 2.0.0]]></title>
            <link>https://blog.masterpackager.com/mpdev-2.0.0</link>
            <guid>https://blog.masterpackager.com/mpdev-2.0.0</guid>
            <pubDate>Wed, 03 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Master Packager Dev 2.0.0 introduces a refreshed interface focused on beauty, usability, workflow improvements, and fixes for home users.]]></description>
            <content:encoded><![CDATA[<p>Master Packager Dev 2.0.0 introduces a refreshed interface focused on beauty, usability, workflow improvements, and fixes for home users.</p>
<!-- -->
<p>Our mission is to end the <a href="https://www.youtube.com/watch?v=7ioIBEQ0zes" target="_blank" rel="noopener noreferrer" class="">endless cycle of re-doing</a>, where developers spend time figuring out how to build an installer while organizations spend time and money fixing them. This cycle creates so much wasted effort and cost around installers - <strong>resources that could be directed toward moving the world forward instead of re-doing stuff</strong>.</p>
<p><a href="https://www.masterpackager.com/developer" target="_blank" rel="noopener noreferrer" class="">Master Packager Dev</a> is the solution to finally stop this waste. Version 2.0.0 focuses on beauty and user experience for home users. Software developers usually build installers for home users first and only then think about organizations that need to deploy those installers to thousands of devices at once. If we want more developers to choose a solution created by experts, we need to make the installer excellent not only for organizations and their deployment systems, but also for regular home users.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="build-beautiful-and-functional-installers">Build beautiful and functional installers<a href="https://blog.masterpackager.com/mpdev-2.0.0#build-beautiful-and-functional-installers" class="hash-link" aria-label="Direct link to Build beautiful and functional installers" title="Direct link to Build beautiful and functional installers" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="install-welcome-view">Install welcome view<a href="https://blog.masterpackager.com/mpdev-2.0.0#install-welcome-view" class="hash-link" aria-label="Direct link to Install welcome view" title="Direct link to Install welcome view" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Installation welcome view for installers created by Master Packager Dev" src="https://blog.masterpackager.com/assets/images/mpd-2.0.0-installwelcome-60adaec2f4-43f9bd233b84196f3a03f1cf8852bc77.png" width="825" height="477" class="img_ev3q"></p>
<p>When double-clicking on the MSI we wanted to make everything about installer visible and clear.</p>
<ul>
<li class=""><strong>Logo</strong> - It should be clear what is the app logo.</li>
<li class=""><strong>Name</strong> - Main title is the app name that is being installed.</li>
<li class=""><strong>Vendor</strong> - Next important component is the vendor and hyperlink behind it moving the user directly to the vendor’s site.</li>
<li class=""><strong>Version</strong> - Version is also a hyperlink moving users to the release notes URL if they want to see what’s new before installing the software.</li>
<li class=""><strong>Description</strong> - Short description about the software you are about to install. We almost never see that implemented so we want to make it a practice.</li>
<li class=""><strong>Privacy &amp; Terms</strong> - All your legal info behind a URL.</li>
<li class=""><strong>Auto-Update settings</strong> - In the right top corner the cog wheel opens settings for user to control auto-update component if the software vendor has enabled this Master Packager Dev feature ensuring their application is always up to date either by silently installing new updates or showing update notification.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Settings view to control auto-updates for installers created by Master Packager Dev" src="https://blog.masterpackager.com/assets/images/mpd-2.0.0-updatesettings-b3426684bf-d6baf0f7aa3327afc482e0743303b1cf.png" width="828" height="479" class="img_ev3q"></p>
<p>It is possible to control the hyperlink and Install button color to match your logo and style. But that’s about it.</p>
<p>The design is created using Windows Fluent Design guidelines, modern and for us beautiful. No options to add custom dialogs. No other ways how to modify this installer UX, because all that leads to waste, complexity and organizations re-doing the package so it can be deployed in their environment. Every component here is for a reason. To solve a problem. Nothing extra. And that’s how it should have been done a long time ago.</p>
<p>It’s time to turn the page so developers can focus on applications while letting <strong>Master Packager Dev</strong> focus on the installer.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="installation-view">Installation view<a href="https://blog.masterpackager.com/mpdev-2.0.0#installation-view" class="hash-link" aria-label="Direct link to Installation view" title="Direct link to Installation view" translate="no">​</a></h3>
<p>When the installation starts it displays a simple progress bar.</p>
<p><img decoding="async" loading="lazy" alt="Installation installation view for installers created by Master Packager Dev" src="https://blog.masterpackager.com/assets/images/mpd-2.0.0-installtion-49277e96b9-5ba0c501f0d87126647723b64cdb4fd1.png" width="826" height="530" class="img_ev3q"></p>
<p>However, if the MSI detects a running conflicting process during installation (which the developer can specify in the project file), it shows a list of processes that the user needs to close. This lets the user clearly see exactly what is holding up the installation, allows them to save their work in these applications, and close the processes manually or by pressing the “Close and continue” button. The installer will then close all conflicting processes for the user.</p>
<p><img decoding="async" loading="lazy" alt="View that lists conflicting processes to close in installers created by Master Packager Dev" src="https://blog.masterpackager.com/assets/images/mpd-2.0.0-runningconflictingapps-8d68d43312-35dc9db7b46a9d75cf245912cfcff6ff.png" width="832" height="623" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="installation-completed-view">Installation Completed view<a href="https://blog.masterpackager.com/mpdev-2.0.0#installation-completed-view" class="hash-link" aria-label="Direct link to Installation Completed view" title="Direct link to Installation Completed view" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Installation end view view for installers created by Master Packager Dev" src="https://blog.masterpackager.com/assets/images/mpd-2.0.0-installationendview-e0777afd15-1f1b795cbfa1f65600266028d085e608.png" width="827" height="728" class="img_ev3q"></p>
<p>Finally when the installation is finished user can clearly see that installation was successful with the green checkmark icon and text.</p>
<p>But that’s not all. With <a href="https://www.masterpackager.com/master-packager-dev-release-notes/2.xxx/2.0.0" target="_blank" rel="noopener noreferrer" class="">2.0.0 version</a> developers now can specify applications end-user can choose to open straight after the installation. It is possible to add more than one application to open and user can select more than one to open directly from the installer view instead of browsing the Windows start menu and trying to guess the shortcut names.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="auto-updates-view">Auto-updates view<a href="https://blog.masterpackager.com/mpdev-2.0.0#auto-updates-view" class="hash-link" aria-label="Direct link to Auto-updates view" title="Direct link to Auto-updates view" translate="no">​</a></h2>
<p>Another component that many developers try to build their own version is installer auto updates.</p>
<p>With Master Packager Dev you can specify our built-in <strong>auto-updater component in the json project file</strong> like this:</p>
<p><img decoding="async" loading="lazy" alt="JSON code snippet that enables installer auto-updates." src="https://blog.masterpackager.com/assets/images/mpd-2.0.0-updaterjsonfilesnippet-35d303acd3-5335902f13d715060472bd95faddab02.png" width="1779" height="1300" class="img_ev3q"></p>
<p>This will enable either silent updates for the application or notification like this:</p>
<p><img decoding="async" loading="lazy" alt="Master Packager Dev auto-updater component in actions that shows notification to the user when new version of the app is available." src="https://blog.masterpackager.com/assets/images/mpd-2.0.0-updates-ee72080a80-7393029da392708606ef10ce197a7099.png" width="650" height="424" class="img_ev3q"></p>
<p>Auto-update UI was the main reason that we understood we can make the installation and update experience alike. We took the lessons learned from the update notifications UI and applied them to the installation view, creating a better experience overall.</p>
<p>Developers can choose whether to include the auto-update component in their installers, while end-users and organizations can control whether they want to enable auto-updates. This provides full control for everyone and ensures an excellent experience both for developers building auto-updates and for end-users using them.</p>
<p>Where our auto-update system truly shines is for enterprises. They can enable automatic updates during the first installation through their deployment system, and all subsequent updates happen under the system context, thus no admin permissions are required for limited users.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="other-improvements">Other improvements<a href="https://blog.masterpackager.com/mpdev-2.0.0#other-improvements" class="hash-link" aria-label="Direct link to Other improvements" title="Direct link to Other improvements" translate="no">​</a></h2>
<p>We have added more needed functionality and fixed multiple bugs that you can see in <a href="https://www.masterpackager.com/master-packager-dev-release-notes/2.xxx/2.0.0" target="_blank" rel="noopener noreferrer" class="">Master Packager Dev 2.0.0 release notes here</a>.</p>
<p>———</p>
<p>We’ve spent a lot of time building an installer that solves the problems we’ve encountered while working with, fixing, and creating thousands of installers over more than a decade. A installer that you can get for your own application.</p>
<p><strong>Consider choosing Master Packager Dev if you want to focus on your application - the real source of value, instead of installer.</strong></p>
<p><a href="https://www.masterpackager.com/pricing/master-packager-dev" target="_blank" rel="noopener noreferrer" class="">Master Packager Dev is free</a> for individuals and non-commercial users.</p>
<ul>
<li class=""><a href="https://www.masterpackager.com/download/master-packager-dev" target="_blank" rel="noopener noreferrer" class="">Download</a></li>
<li class=""><a href="https://www.masterpackager.com/support-master-packager-dev/documentation" target="_blank" rel="noopener noreferrer" class="">Documentation</a></li>
<li class=""><a href="https://www.youtube.com/watch?v=kCvQ6yE42_4" target="_blank" rel="noopener noreferrer" class="">Example video</a></li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Notepad++ Now Has an Official MSI: Is It Good and How Can You Improve It Yourself?]]></title>
            <link>https://blog.masterpackager.com/Notepad-plus-plus-MSI</link>
            <guid>https://blog.masterpackager.com/Notepad-plus-plus-MSI</guid>
            <pubDate>Tue, 25 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to improve the official Notepad++ MSI for enterprise deployment with auto-update fixes, PSADT, Intune, and MSI customization.]]></description>
            <content:encoded><![CDATA[<p>Notepad++ 8.8.8 finally have an official MSI package type. In this blog post we review what works, what’s missing, and how to improve it.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-changed">What Changed?<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#what-changed" class="hash-link" aria-label="Direct link to What Changed?" title="Direct link to What Changed?" translate="no">​</a></h2>
<p>With Notepad++ v8.8.8, a 64-bit MSI is now available for enterprise IT deployment. The MSI installer was one of <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2326" target="_blank" rel="noopener noreferrer" class="">the most requested features</a>. On the <a href="https://notepad-plus-plus.org/downloads/v8.8.8/" target="_blank" rel="noopener noreferrer" class="">Notepad++ download page</a>, next to the EXE installer and a few portable zip options, now lies an MSI installer.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-everyone-deployed-notepad-until-now">How Everyone Deployed Notepad++ Until Now?<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#how-everyone-deployed-notepad-until-now" class="hash-link" aria-label="Direct link to How Everyone Deployed Notepad++ Until Now?" title="Direct link to How Everyone Deployed Notepad++ Until Now?" translate="no">​</a></h2>
<p>It has always been complicated to modify the current Notepad++ EXE installer to meet enterprise standards in environments where end-users do not have admin rights, including disabling auto-updates and pre-installing specific plugins.</p>
<p>To overcome these issues, IT admins from all over the world have used one of the following methods to deploy Notepad++.</p>
<ol>
<li class=""><strong>Install EXE</strong> with <a href="https://npp-user-manual.org/docs/command-prompt/#installer-options" target="_blank" rel="noopener noreferrer" class="">available command line options</a> by manually downloading the EXE or using community package managers like <a href="https://learn.microsoft.com/en-us/windows/package-manager/winget/" target="_blank" rel="noopener noreferrer" class="">WinGet</a>.</li>
<li class=""><strong>Download installer from</strong> <a href="https://hass.de/" target="_blank" rel="noopener noreferrer" class="">hass.de</a> website where a custom Notepad++ MSI was created and maintained by GitHub user <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2326#issuecomment-252492756" target="_blank" rel="noopener noreferrer" class="">alexhass</a>.</li>
<li class=""><strong>Repackaging every new Notepad++ EXE</strong> installation into high-quality MSI using paid repackaging software and making required adjustments for the organization’s needs. We have a video explaining how to do that in detail here:</li>
</ol>
<p><a href="https://www.youtube.com/embed/BJTeqIcmu5c" target="_blank" rel="noopener noreferrer" class="">Embedded content</a></p>
<p>In the Notepad++ GitHub project, maintainer <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2326#issuecomment-3550039535" target="_blank" rel="noopener noreferrer" class="">donho mentions that MSI wasn’t created earlier because</a>:</p>
<ul>
<li class="">It was difficult to support multiple languages in MSI</li>
<li class="">There were some visual glitches during installation using earlier versions of WiX</li>
<li class=""><a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/13390#issuecomment-1480543508" target="_blank" rel="noopener noreferrer" class="">Didn’t want to maintain two installer types</a></li>
</ul>
<p>Now, as the Notepad++ project matures, he sees the MSI as a basic and simple installer used solely for IT deployment and nothing more. An MSI he can maintain independently. An MSI that will be available on the Notepad++ website and <strong>will not be available in the Microsoft Store</strong> based on these comments:</p>
<ul>
<li class=""><a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/9221#issuecomment-991374797" target="_blank" rel="noopener noreferrer" class="">https://github.com/notepad-plus-plus/notepad-plus-plus/issues/9221#issuecomment-991374797</a></li>
<li class=""><a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16767#issuecomment-3508548630" target="_blank" rel="noopener noreferrer" class="">https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16767#issuecomment-3508548630</a></li>
</ul>
<p>In this blog post, we investigate how good the new MSI is for enterprise use cases.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-good-is-the-new-notepad-msi">How Good Is the New Notepad++ MSI?<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#how-good-is-the-new-notepad-msi" class="hash-link" aria-label="Direct link to How Good Is the New Notepad++ MSI?" title="Direct link to How Good Is the New Notepad++ MSI?" translate="no">​</a></h2>
<p>The new Notepad++ 8.8.8 MSI is created using <strong>WiX Toolset 6.0.2.0</strong>.</p>
<p>The MSI itself is minimalistic, simple, and <a href="https://www.masterpackager.com/support-master-packager/master-packager/table-editor/ice-validation" target="_blank" rel="noopener noreferrer" class="">without any ICE MSI warning or errors</a>, which is great.</p>
<p>However, the installer is missing several major requirements to be called an <em>enterprise-ready</em> installer, as it was pointed out by several GitHub users prior 8.8.8 release.</p>
<p>So, what’s good, what’s missing, and how can we make adjustments to have a truly enterprise-ready MSI?</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-whats-good-in-the-msi">✅ What’s Good in The MSI<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#-whats-good-in-the-msi" class="hash-link" aria-label="Direct link to ✅ What’s Good in The MSI" title="Direct link to ✅ What’s Good in The MSI" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="customization-and-overview-paradise">Customization And Overview Paradise<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#customization-and-overview-paradise" class="hash-link" aria-label="Direct link to Customization And Overview Paradise" title="Direct link to Customization And Overview Paradise" translate="no">​</a></h4>
<p>It’s an MSI. Everything is visible and clear. No surprises and ease of mind for IT admins when deploying it to thousands of endpoints compared to EXE installations, where they often act like black boxes.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="adding-plugins">Adding plugins<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#adding-plugins" class="hash-link" aria-label="Direct link to Adding plugins" title="Direct link to Adding plugins" translate="no">​</a></h4>
<p>To install Notepad++ plugins from the app, it requires end-users to have admin rights since the files are installed into Program Files. But now that we finally have an official MSI, it’s super easy to add required plugins. Just create an MST file and place plugins into: “[ProgramFiles64Folder]Notepad++\plugins”. A great example of what you can do with MSI customization.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="no-desktop-shortcut">No Desktop Shortcut<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#no-desktop-shortcut" class="hash-link" aria-label="Direct link to No Desktop Shortcut" title="Direct link to No Desktop Shortcut" translate="no">​</a></h4>
<p>There is no desktop shortcut in the MSI, which is good. The desktop is a user’s private space, and no application should create shortcuts there by default. This is an especially widely accepted practice in the majority of organizations where application packagers spend time deleting desktop shortcuts from third-party installers.</p>
<p>For developers, the best practice is either not to create the desktop shortcut at all or, at least, to have a property that can be easily used via the command line when deploying to disable the creation of the desktop shortcut.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-whats-missing-in-the-msi">❌ What’s Missing in The MSI<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#-whats-missing-in-the-msi" class="hash-link" aria-label="Direct link to ❌ What’s Missing in The MSI" title="Direct link to ❌ What’s Missing in The MSI" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="no-option-to-disable-auto-updates">No Option To Disable Auto-Updates<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#no-option-to-disable-auto-updates" class="hash-link" aria-label="Direct link to No Option To Disable Auto-Updates" title="Direct link to No Option To Disable Auto-Updates" translate="no">​</a></h4>
<p>There is no out-of-the-box option to disable Notepad++ auto-updates in the MSI, and this is a must-have. For MSIs targeted specifically for enterprises, auto-updates should be disabled by default.</p>
<p>When building an installer, developers should always take into account that their application may be used by larger organizations where they have application management standards to control application updates themselves.</p>
<p>Another concern, which remains unanswered, is what exactly gets installed when an auto-update is triggered for app installed via MSI. We assume it installs the EXE version on top of the MSI, which complicates things because we couldn’t identify any changes that would prompt auto-update to download the correct installer. This issue is more concerning for home users, who might accidentally install the MSI version of Notepad++ and later receive EXE-based updates on top of the MSI.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="no-upgrade-for-exe-installs">No Upgrade for EXE installs<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#no-upgrade-for-exe-installs" class="hash-link" aria-label="Direct link to No Upgrade for EXE installs" title="Direct link to No Upgrade for EXE installs" translate="no">​</a></h4>
<p>The MSI does not upgrade the previously installed Notepad++ EXE installation.</p>
<p>It would be excellent if software developers created installers that upgrade all their previous app versions, despite the installation format. The best solution would be to strive to support only one type of installer, so there wouldn’t be a need to worry about multiple installation type upgrade support in the first place.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="msi-reliability-properties">MSI reliability properties<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#msi-reliability-properties" class="hash-link" aria-label="Direct link to MSI reliability properties" title="Direct link to MSI reliability properties" translate="no">​</a></h4>
<p>Over the years of doing app packaging, we’ve learned to always use specific MSI properties to improve installation reliability, for example, to prevent unexpected machine reboots using <strong>REBOOT=ReallySuppress</strong> property.</p>
<p><a href="https://www.masterpackager.com/blog/improve-msi-reliability-with-these-msi-properties" target="_blank" rel="noopener noreferrer" class="">We have a blog post describing these properties here</a>.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="missing-functionality-in-the-app">Missing functionality in the App<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#missing-functionality-in-the-app" class="hash-link" aria-label="Direct link to Missing functionality in the App" title="Direct link to Missing functionality in the App" translate="no">​</a></h4>
<p>Comparing MSI-installed Notepad++ with the EXE-installed version, we noticed that Markdown language options (both standard and dark mode) are missing in the MSI installation.</p>
<p><img decoding="async" loading="lazy" alt="Notepad++ functionality differences between EXE and MSI." src="https://blog.masterpackager.com/assets/images/notepad_msi_vs_exe_installed-cc819c2380-16e1106d34598ac05a6795e031cbc864.png" width="1431" height="854" class="img_ev3q"></p>
<p>If you need these features, extract files from the EXE installation and install them in the per-user location. <a href="https://youtu.be/BJTeqIcmu5c?si=M-Yxb-lfMG3kAsmj&amp;t=691" target="_blank" rel="noopener noreferrer" class="">We showed how to do this in our Notepad++ repackaging video</a> using the free Community version of Master Packager software and our <a href="https://www.masterpackager.com/support-master-packager/master-packager/advanced-editor/custom-actions/predefined-custom-actions" target="_blank" rel="noopener noreferrer" class="">Predefined Custom Actions</a>.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="missing-app-path-registry-key">Missing App Path Registry Key<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#missing-app-path-registry-key" class="hash-link" aria-label="Direct link to Missing App Path Registry Key" title="Direct link to Missing App Path Registry Key" translate="no">​</a></h4>
<p>It’s a registry key <em>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths</em> that holds information about the path to executable files. It allows you to run applications without having to type the full path in the Run dialog.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="improving-official-notepad-msi-as-an-it-admin">Improving Official Notepad++ MSI as an IT Admin<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#improving-official-notepad-msi-as-an-it-admin" class="hash-link" aria-label="Direct link to Improving Official Notepad++ MSI as an IT Admin" title="Direct link to Improving Official Notepad++ MSI as an IT Admin" translate="no">​</a></h2>
<p>Now that you have an official MSI from the Notepad++ team, you can skip repackaging EXE or using other people’s created MSIs, but focus on creating the best version of the Notepad++ package yourself.</p>
<p>Here are the steps on how to do it:</p>
<ol>
<li class=""><a href="https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.8.8/npp.8.8.8.Installer.x64.msi" target="_blank" rel="noopener noreferrer" class="">Download the MSI</a></li>
<li class="">Open the MSI with <a href="https://www.masterpackager.com/download" target="_blank" rel="noopener noreferrer" class="">Master Packager</a> (Free community version).</li>
<li class="">Click <strong>Transform → New Transform → Save</strong> next to the MSI file.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Create new Transform with Master Packager" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mp_new_transform-1756a6fe31-1b03ec56ae22fe20354085ea8ea131e9.png" width="1176" height="769" class="img_ev3q"></p>
<ol start="4">
<li class="">In Advanced Editor → Uninstall or Change Programs → Uncheck “<strong>Display Modify Button</strong>” as it is not needed.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Disable modify button in Master Packager" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mp_modify_button-c6f9c70deb-5367d1aafb0799f08ecb42db423c1c17.png" width="1190" height="744" class="img_ev3q"></p>
<ol start="5">
<li class="">
<p>Go to <strong>Table Editor → Component table</strong>.</p>
</li>
<li class="">
<p>Filter by <strong>“UpdaterFolder”</strong> and add <strong>DONTINSTALL</strong> to the <strong>Condition</strong> column for all filtered components. This will prevent installing MSI components that hold files responsible for Notepad++ auto-updates.</p>
<p><em>Note that this will break plugin installation functionality in the app, but that’s ok, as users would need admin rights anyway to install Notepad++ plugins, and enterprise end-users do not have admin rights to do any of this.</em></p>
</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Disable Auto-Updates for Notepad++ using Master Packager" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mp_disable_updates-03c805df93-1c2b8e4fcd826c3b5021ef2c5e83a549.png" width="1353" height="700" class="img_ev3q"></p>
<ol start="7">
<li class="">Add App Path Registry to improve end-user app launch experience. Go to Registries view → Create <strong>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\notepad++.exe</strong> key with default registry name value pointing to notepad++.exe primary file key and for Path registry name value pointing to the Directory name where the notepad++.exe is installed.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Create registries in Master Packager" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mp_apppath-98d592dc8e-de45f78481c4c8298493b1b4885b9c0a.png" width="1595" height="680" class="img_ev3q"></p>
<ol start="8">
<li class=""><a href="https://www.masterpackager.com/blog/improve-msi-reliability-with-these-msi-properties" target="_blank" rel="noopener noreferrer" class="">Apply MSI reliability properties</a>. Pro tip - you can automate applying these properties with one click using <a href="https://www.masterpackager.com/support-master-packager/master-packager/advanced-editor/advanced-editor-templates" target="_blank" rel="noopener noreferrer" class="">Master Packager templates functionality</a>.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Apply Templates in Master Packager" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mp_properties-a941a55b40-72c7f4a455d935ea3134d61530d346cf.png" width="1713" height="697" class="img_ev3q"></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="if-you-need-to-have-specific-plugins-preinstalled-then">If you need to have specific plugins preinstalled, then:<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#if-you-need-to-have-specific-plugins-preinstalled-then" class="hash-link" aria-label="Direct link to If you need to have specific plugins preinstalled, then:" title="Direct link to If you need to have specific plugins preinstalled, then:" translate="no">​</a></h4>
<ul>
<li class="">Install Notepad++ on a test machine.</li>
<li class="">Grab plugin files from: <em>“C:\Program Files\Notepad++\plugins”</em></li>
<li class="">In Master Packager Advanced View → Files view, drag and drop plugins into: <em>“[ProgramFiles64Folder]Notepad++\plugins”</em></li>
<li class="">Click <strong>Build Now</strong>. This will create a <strong>data.cab</strong> file that must stay next to the MSI and MST during installation.</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="if-you-previously-repackaged-notepad-into-an-msi-or-used-msi-from-hassde-then">If you previously repackaged Notepad++ into an MSI or used MSI from <a href="https://hass.de/" target="_blank" rel="noopener noreferrer" class="">hass.de</a>, then:<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#if-you-previously-repackaged-notepad-into-an-msi-or-used-msi-from-hassde-then" class="hash-link" aria-label="Direct link to if-you-previously-repackaged-notepad-into-an-msi-or-used-msi-from-hassde-then" title="Direct link to if-you-previously-repackaged-notepad-into-an-msi-or-used-msi-from-hassde-then" translate="no">​</a></h4>
<ul>
<li class="">Reuse your previous MSI Upgrade Codes.</li>
<li class="">In Master Packager → Advanced View → Upgrade section</li>
<li class="">Press NEW</li>
<li class="">Paste your previous MSI package Upgrade Code to <strong>Upgrade Code</strong> textbox</li>
<li class="">Set <strong>Max Version</strong> to <strong>8.8.8</strong></li>
<li class="">Set <strong>Action Property</strong> to <strong>WIX_UPGRADE_DETECTED</strong></li>
<li class="">Press ADD and then NEW again</li>
<li class="">Paste your previous MSI package Upgrade Code to <strong>Upgrade Code</strong> textbox</li>
<li class="">Select checkbox <strong>Detect only</strong></li>
<li class="">Set <strong>MinVersion</strong> to <strong>8.8.8</strong></li>
<li class="">Set <strong>Action Property</strong> to <strong>WIX_DOWNGRADE_DETECTED</strong></li>
</ul>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mp_upgrade_tables-975c5ed450-406238caec53cc55ff93d8cbfc6c572b.png" width="1421" height="699" class="img_ev3q"></p>
<p>You’re good to deploy this as is. But if you want to take it to the next level, we strongly recommend wrapping it with <a href="https://psappdeploytoolkit.com/" target="_blank" rel="noopener noreferrer" class="">PSAppDeployToolkit (PSADT)</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="wrapping-into-psadt">Wrapping into PSADT<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#wrapping-into-psadt" class="hash-link" aria-label="Direct link to Wrapping into PSADT" title="Direct link to Wrapping into PSADT" translate="no">​</a></h3>
<p>You’ll get a great end‑user experience with PSADT pop‑ups to prevent forced closes and standardized package creation, plus easier removal of previous EXE installations using built‑in PSADT functions.</p>
<p>For that use <a href="https://www.masterpackager.com/master-wrapper" target="_blank" rel="noopener noreferrer" class="">Master Wrapper</a> (Free or Pro) to easily wrap the MSI inside the PSADT.</p>
<ol>
<li class="">Open Master Wrapper</li>
<li class="">Drag &amp; Drop MST file to the application info view or select “Load data from installer”.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Load installer details in Master Wrapper" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mw_drag_msi_mst-8b2485108a-2a893b1596d6a88a0d223375bcb131a2.png" width="1401" height="1083" class="img_ev3q"></p>
<ol start="3">
<li class="">Add description. <em>(If you will upload this package to Intune using <a href="https://www.masterpackager.com/master-packager-toolbox" target="_blank" rel="noopener noreferrer" class="">Master Packager Toolbox</a>, then this info will automatically be used for Intune Company Portal, saving you time)</em></li>
<li class="">Move to “Main actions” -&gt; Install view</li>
<li class="">Add PSADT function <strong><a href="https://psappdeploytoolkit.com/docs/reference/functions/Uninstall-ADTApplication" target="_blank" rel="noopener noreferrer" class="">Uninstall-ADTApplication</a></strong> in the first line to ensure Notepad++ EXE uninstallation before starting to install new MSI version.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Add Notepad++ previous app upgrade function" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mw_uninstall_previous_versions-8a64cc18b7-b211805030c09e1ca126ed5fe71d19b9.png" width="1384" height="1079" class="img_ev3q"></p>
<ol start="6">
<li class="">You can see that Master Wrapper automatically loaded notepad++ exe as a process to be closed using the PSADT prompt if opened during install and uninstall, ensuring an amazing end-user experience.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Set processes to close for PSADT in Master Wrapper" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mw_detect_prorcess-41b9cfc2f0-90b6173144852b5ba783621edd86135a.png" width="1380" height="1073" class="img_ev3q"></p>
<ol start="7">
<li class="">That’s it. Save it and upload to your deployment system or use <a href="https://www.masterpackager.com/support-master-packager/master-packager-toolbox/intune" target="_blank" rel="noopener noreferrer" class="">Master Packager Toolbox to upload to Intune faster</a>.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Upload package to Intune faster with Master Packager Toolbox" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mpt_upload_to_intune-89f4bd92a6-97d598ae778bd4c30832e0ed1e1675ad.png" width="1440" height="1258" class="img_ev3q"></p>
<p>You can download a ready package with the created MST and PSADT here.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-the-notepad-installer-should-have-looked-from-the-start">How the Notepad++ installer should have looked from the start<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#how-the-notepad-installer-should-have-looked-from-the-start" class="hash-link" aria-label="Direct link to How the Notepad++ installer should have looked from the start" title="Direct link to How the Notepad++ installer should have looked from the start" translate="no">​</a></h2>
<p>The main problem is that there are two installers, and neither of them works as well as they could.</p>
<p>Both need to be created, maintained, and communicated to end-users. How is a regular home user supposed to know which one to install? How would they know that the MSI option is meant only for enterprises, will be missing features, and might even try to install an EXE during an update, making their machine a mess? Sure, a text could be added next to each installer explaining what it’s for, <a href="https://youtu.be/7ioIBEQ0zes?si=hJ65OeBjSYY5ibTf&amp;t=668" target="_blank" rel="noopener noreferrer" class="">but that’s just solving a problem, not eliminating it</a>.</p>
<p>With open-source projects, we often hear that it is hard to find people who are willing to help maintain the project or contribute. But in this case, the MSI is created using WiX Toolset and ends up being 807 lines of code, while their EXE installer is built with NSIS and requires multiple files and folders, each containing hundreds of lines of code that someone would need to read and understand in order to help.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="building-msi-or-msix-or-both-using-master-packager-dev">Building MSI or MSIX or both using Master Packager Dev<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#building-msi-or-msix-or-both-using-master-packager-dev" class="hash-link" aria-label="Direct link to Building MSI or MSIX or both using Master Packager Dev" title="Direct link to Building MSI or MSIX or both using Master Packager Dev" translate="no">​</a></h3>
<p>After years of packaging thousands of third-party apps for organizations, we learned how hard it is to understand, build, and afford a great installer. That is why we created <a href="https://www.masterpackager.com/developer" target="_blank" rel="noopener noreferrer" class="">Master Packager Dev</a>. It is a command-line tool that developers can integrate into their CI/CD pipelines to build excellent MSI and MSIX packages from a simple JSON project file. <a href="https://www.masterpackager.com/pricing/master-packager-dev" target="_blank" rel="noopener noreferrer" class="">It is free for non-commercial organizations</a> like Notepad++ team.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-project-file-for-msi">The project file for MSI<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#the-project-file-for-msi" class="hash-link" aria-label="Direct link to The project file for MSI" title="Direct link to The project file for MSI" translate="no">​</a></h3>
<p>We decided to go with JSON file as it easy to create and read.</p>
<p>Master Packager Dev will not only build the installer, but also sign all binaries and installer, add Windows 11 modern context menu or <a href="https://www.masterpackager.com/blog/Add-These-17-Lines-and-Your-App-Will-Auto-Update" target="_blank" rel="noopener noreferrer" class="">add auto-update component</a> that can update package also for users without admin rights completely silently.</p>
<p>This is how the project file looks like to build MSI that works great for home users as well for enterprises.</p>
<p><img decoding="async" loading="lazy" alt="Master Packager Dev JSON project file that can build high quality MSI for enterprise deployment." src="https://blog.masterpackager.com/assets/images/nplusplusblog_mpd_project_file-a645f5b42a-95b49873c060c76df67044497ab1cef2.png" width="2592" height="3159" class="img_ev3q"></p>
<p>Build is simple as running <strong>mpdev build path_to_json</strong></p>
<p><img decoding="async" loading="lazy" alt="Building MSI using Master Packager in Terminal" src="https://blog.masterpackager.com/assets/images/nplusplusblog_mpd_building-d8f8be3bf5-d3c544957e4ddb270c849fa98e0714ee.png" width="1277" height="916" class="img_ev3q"></p>
<p>The end result is an excellent MSI file for organizational deployment systems, as well as a simple installation experience for home users.</p>
<p><img decoding="async" loading="lazy" alt="Built Notepad++ installation UI from Master Packager Dev" src="https://blog.masterpackager.com/assets/images/nplusplusblog_install_ui-520cba5e45-df47d0315dcd8f20159437561e49be26.png" width="663" height="368" class="img_ev3q"></p>
<p>It is also possible to add <a href="https://learn.microsoft.com/en-us/windows/msix/overview" target="_blank" rel="noopener noreferrer" class="">MSIX</a> option in the project file if you know your app will work under MSIX packaging type.</p>
<p><a href="https://www.masterpackager.com/download/master-packager-dev" target="_blank" rel="noopener noreferrer" class="">Download Master Packager Dev</a>, try it yourself, check out the <a href="https://www.masterpackager.com/support-master-packager-dev" target="_blank" rel="noopener noreferrer" class="">documentation</a> or <a href="https://www.masterpackager.com/contacts" target="_blank" rel="noopener noreferrer" class="">reach out to us for help or advice</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="final-thoughts">Final thoughts<a href="https://blog.masterpackager.com/Notepad-plus-plus-MSI#final-thoughts" class="hash-link" aria-label="Direct link to Final thoughts" title="Direct link to Final thoughts" translate="no">​</a></h2>
<p>It is great that the Notepad++ developer is starting to listen to the community and is now offering an MSI installer. It is a much better option than the EXE created with NSIS (Nullsoft Scriptable Install System) or Inno Setup, which let developers build installers that organizations often need to redo afterward.</p>
<p>However, as this new MSI is clearly marked as an enterprise deployment-ready solution, it really isn’t due to the fact that auto-updates are left enabled without official instructions on how to disable them, there are missing features when compared to EXE installation, and IT admins still need to do packaging before they can deploy the installer.</p>
<p>The goal should be to create and support only one packaging type that is ideal for home users, and organizations do not need to spend extra time packaging it. An MSI is a perfect packaging type to achieve that, either using WiX Toolset, <a href="https://www.masterpackager.com/developer" target="_blank" rel="noopener noreferrer" class="">Master Packager Dev</a>, or other solutions.</p>
<p>Having MSI for Notepad++ as an additional packaging type is a great first step forward, and we should be happy even if it is not perfect (yet). :)</p>
<p>———</p>
<p>If you as third-party app packager, IT admin or independent software vendor developing your own app are ready to build Windows application packages that end-users love, enterprises want, and the Windows OS needs we are here to help with <a href="https://masterpackager.com/contacts" target="_blank" rel="noopener noreferrer" class="">our knowledge and solutions</a>.</p>
<p><a href="https://youtu.be/7ioIBEQ0zes" target="_blank" rel="noopener noreferrer" class="">Our mission</a> is to help finally <strong>end the endless cycle of re-doing</strong> where every organization is forced to <strong>waste time and money</strong> fixing vendor applications that should have been created correctly from the start.</p>
<p>Have an easy package, or hard, because you’re a Master Packager.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AppManagEvent 2025, IT friends, and integration with PMPC]]></title>
            <link>https://blog.masterpackager.com/ame2025</link>
            <guid>https://blog.masterpackager.com/ame2025</guid>
            <pubDate>Tue, 14 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[As with every October, the Master Packager team is back in Latvia from the amazing AppManagEvent, and this year was special for three main reasons.]]></description>
            <content:encoded><![CDATA[<p>As with every October, the Master Packager team is back in Latvia from the amazing AppManagEvent. This year was special for three main reasons.</p>
<!-- -->
<p>As with every October, the Master Packager team is back in Latvia from the amazing AppManagEvent. This year was special for three main reasons.</p>
<p><img decoding="async" loading="lazy" alt="Edijs Perkums and Toms Knostenbergs behind the Master Packager booth." src="https://blog.masterpackager.com/assets/images/ame_2025_mp_booth_toms_edijs-96fdafb287-c6fc0638d94b3ea09d9f4d33c6f387a6.jpg" width="1315" height="986" class="img_ev3q"></p>
<p>First, we had the chance to meet up with friends we hadn’t seen in a long time and others we had never met in person, all of whom we had known through application packaging.</p>
<p><a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">Rory Monaghan</a>, <a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">Dan Gough</a>, and <a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">Dan Cunningham</a> were among the first Master Packager advocates to spread the word about how good the Master Packager software is, completely unsponsored. I do not know if they realized how important that was, especially in the early days when no one knew about us and we were bootstrapping the company with no budget for marketing. Thanks to AppManagEvent, we got to meet them and say thank you in person.</p>
<p>We met so many people: partners, friends, customers, and speakers. The entire day was spent networking for a full 11 hours. We really enjoyed it.</p>
<p>Second, we had an opportunity to speak on the main stage about PSAppDeployToolkit and MSI. We support many organizations and users through different channels and have noticed that experienced packagers who know MSI technology are increasingly being succeeded by system administrators who rely solely on PowerShell. This inspired Dan and me to collaborate on a session comparing PSAppDeployToolkit and MSI in various packaging tasks, showing how choosing the right technology can save hours of work and improve internal app management quality in general.</p>
<p><img decoding="async" loading="lazy" alt="Dan Cunningham and Toms Knostenbergs before their session about Pure MSI vs PSAppDeployToolkit." src="https://blog.masterpackager.com/assets/images/ame_2025_psadt_vs_msi_dan_toms-b02fa0c54a-02b788e0aa9ef1dd07f0e257e701804f.jpg" width="4032" height="3024" class="img_ev3q"></p>
<p>Third, but not least, we announced and showed a sneak peek of our integration with the <a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">Patch My PC</a>.</p>
<p><a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">Patch My PC</a>, a leading third-party patch management solution, offers a catalog of pre-packaged apps to keep your machines up to date with the latest versions. However, as it is for every third-party catalog - not every app organization may need is included or can be pre-packaged. For those missing apps, organizations use an application packaging solution like <a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">Master Packager</a> to package them. In upcoming Master Packager releases, we’ll introduce direct upload of a custom app to the Patch My PC Cloud portal right from within Master Packager. This will save even more time and further streamline the packaging process.</p>
<p>Finally, thank you, <a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">Coert Bosker</a>, <a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">Danny van Dal</a>, and the entire <a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">Professional Development Systems BV</a> team, for organizing <a href="https://www.linkedin.com/feed/#" target="_blank" rel="noopener noreferrer" class="">AppManagEvent</a> . It’s the best-organized IT event with the most application management–focused attendees we’ve ever attended. Looking forward to AppManagEvent 2026 on October 9, where we plan to showcase the best version of Master Packager yet.</p>
<p><img decoding="async" loading="lazy" alt="Master Packager is a gold sponsor of AppManagEvent 2025." src="https://blog.masterpackager.com/assets/images/ame_2025_sponsors_mp-0b638c4f3a-7e29a6b7ab4617ef31873b1dbdd39911.jpg" width="1315" height="986" class="img_ev3q"></p>
<p>Inspired and full of energy to execute our vision - making app management easy and affordable for companies of all sizes. 2026 will be our most exciting year yet, where we will bring the most value to those involved in application management.</p>
<p><img decoding="async" loading="lazy" alt="Flying home from AppManagEvent with airBaltic" src="https://blog.masterpackager.com/assets/images/ame_2025_flying_airbaltic-a16b07b797-4edff3edbd682fac5b7e7b30aef80854.jpg" width="740" height="986" class="img_ev3q"></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[There are even fewer app packaging solutions left!]]></title>
            <link>https://blog.masterpackager.com/few-app-packaging-solutions-left</link>
            <guid>https://blog.masterpackager.com/few-app-packaging-solutions-left</guid>
            <pubDate>Mon, 14 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[App packaging solutions are disappearing in 2025, making innovation, modern tooling, and reliable application packaging more important than ever.]]></description>
            <content:encoded><![CDATA[<p>In July, 2025, I can point organizations to only four professional app packaging solutions that you can buy licenses of and that will do great job solving main application packaging challenges. However, public release notes and industry feedback indicate that two of these solutions have a significant slowdown in development and innovation in recent years.</p>
<!-- -->
<p>Application packaging solution PACE Suite, developed by Infopulse, which is now part of Tietoevry Create, has <a href="https://pacesuite.com/news/pace-products-license-sales-suspension?_gl=1*1gakcv7*_up*MQ..*_ga*MjA0Nzg0NDE5NS4xNzUyNDg5MDA3*_ga_T5JLE7KT74*czE3NTI0ODkwMDYkbzEkZzEkdDE3NTI0ODkwMTEkajU1JGwwJGgw" target="_blank" rel="noopener noreferrer" class="">suspended new product license sales from June 30, 2025</a>.</p>
<p>In July, 2025, I can point organizations to only <strong>four</strong> professional app packaging solutions that you can buy licenses of and that will do great job solving main application packaging challenges. However, public release notes and industry feedback indicate that <strong>two</strong> of these solutions have a significant slowdown in development and innovation in recent years.</p>
<p>That means that only <strong>two</strong> vendors are left that continue to regularly improve the software, innovate with features that actually help with real problems (not only mandatory maintenance), show up in conferences, give sessions and write blog posts to help others.</p>
<p>One of these two packaging solutions who haven’t slow down in 2025 but only expands, of course, is <a href="https://www.masterpackager.com/" target="_blank" rel="noopener noreferrer" class="">Master Packager</a>. And initial business instinct would tell: “Great, fewer competitors mean more customers will find out about Master Packager!“. While somewhere that’s true, it hides more complex issues underneath the surface - the trend is that soon there will be even fewer app packaging solutions left.</p>
<p>Competition is good. For companies like Master Packager and consumers. It forces companies to push forward. To think. To execute. To innovate. To keep the price down. And that leads to better products and ultimately a better life for consumers. In Latvia, for example, we have access to unlimited lightning fast (average 300-1000 Mbps) internet and unlimited calls for less than €30 per month. All thanks to competition in the internet provider space.</p>
<p>Over the years, <a href="https://www.installsite.org/pages/en/msi/authoring.htm" target="_blank" rel="noopener noreferrer" class="">many app packaging tools have been discontinued</a>, like Wise Package Studio by Symantec in 2013 and MSI Studio by Dell in 2013. Many have been just left for slow death, like the brilliant MSI editing tool InstEd It, which has inspired us a lot. Microsoft ORCA has remained untouched for almost two decades. Even the Microsoft MSIX Packaging Tool, hasn’t been updated for more than a year, although lacking a ton of features to be useful with modern packaging format <a href="https://youtu.be/RtDmCYu-Ngo?si=FDuSb086vxFbMrzv" target="_blank" rel="noopener noreferrer" class="">MSIX adaption</a>.</p>
<p>Demand for app repackaging has decreased due to better support for silent installations from software vendors and fewer OS compatibility issues compared to the migration times from XP and Windows 7. There are also more apps available in Microsoft Store, WinGet, and multiple third-party patching catalog providers help reduce the need for popular app packaging.</p>
<p>The new generation of IT admins who play the role of deployment specialists, but who have never seen what impact streamlined app packaging can bring to organizations’ efficiency, often choose an easier way to deploy apps and be done with it. That comes with a price tag in long run in terms of standardization, troubleshooting and more important - security.</p>
<p>All these reasons makes app packaging look less needed. But enterprise needs haven’t disappeared. No single third-party catalog can update and configure all applications in a medium to large environment. People are rotating and IT pros new to app management do not have experience how to handle low quality application installers. Standardization, predictability, security, and efficiency are key cornerstones for a mature, efficient, and stable organization. That’s where tools like <a href="https://www.masterpackager.com/wall-of-love" target="_blank" rel="noopener noreferrer" class="">Master Packager provide value</a>, giving organizations full control to package any app to meet their requirements.</p>
<p>We started developing Master Packager in 2014, with public appearance in 2018. Entering an already mature market dominated by well-known tools was challenging. Yet, as professional packagers ourselves, we saw that multiple problems existed: tools stopped improving, were expensive, overly complex, and often lacked features we considered essential. We knew the market and we understood the customer and the tools. Knowing that made us strong to continue fulfill our <a href="https://www.masterpackager.com/about" target="_blank" rel="noopener noreferrer" class="">vision - making app management affordable and easier</a>.</p>
<p>We have been profitable from day one while offering professional application packaging solution for <a href="https://www.masterpackager.com/blog/affordable" target="_blank" rel="noopener noreferrer" class="">affordable price</a>. We love building products, we love application packaging, and we love helping organization become more efficient and save money.</p>
<p>There is no doubt that app packaging is still needed and will be for many years. But not on the same scale as before. For vendors with large teams and complex packaging solutions full of features no longer needed in the Windows 11 era, it will be hard and we can already see that happening.</p>
<p>For us on other hand with our decade of app packaging knowledge, small team, focus on problem solving not maximizing profits and fully owning the solution ourselves we strive to be the number one choice for many organizations understanding how important application management is. For so many organizations we already are. But we know there are more organizations out there discovering us every day - <strong>and once they do, they never look back.</strong></p>
<ul>
<li class="">If you are a PACE Suite existing customer and are now looking for a new professional app packaging software, consider choosing <a href="https://www.masterpackager.com/pricing" target="_blank" rel="noopener noreferrer" class="">Master Packager</a>.</li>
<li class="">If you’re using a software packaging software with slow release cadence, do not see new features that bring value to you and cost a fortune - consider looking into <a href="https://www.masterpackager.com/pricing" target="_blank" rel="noopener noreferrer" class="">Master Packager</a>.</li>
<li class="">If you are only using PSAppDeployToolkit (PSADT) to package apps, consider learning more about what a comprehensive app packaging solution like <a href="https://www.masterpackager.com/pricing" target="_blank" rel="noopener noreferrer" class="">Master Packager</a> can provide to you and your organization. To package any Win32 custom app with highest standards in reasonable time , then PSADT is not enough.</li>
<li class="">If you do not have a packaging tool and you do not know why it is needed and where to start, consider <a href="https://www.masterpackager.com/contacts" target="_blank" rel="noopener noreferrer" class="">reaching out to</a> us and let us help you and your organization learn and get better.</li>
</ul>
<p>Have an easy package, or hard, because you are a Master Packager!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Workplace Ninjas UK 2025 in Edinburgh - Amazing and Beautiful]]></title>
            <link>https://blog.masterpackager.com/WPNinjasUK2025</link>
            <guid>https://blog.masterpackager.com/WPNinjasUK2025</guid>
            <pubDate>Thu, 19 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We’re back in Latvia after attending Workplace Ninjas UK 2025, which took place in the beautiful city of Edinburgh. Let us tell you how great it was. [Download our session slides].]]></description>
            <content:encoded><![CDATA[<p>We’re back in Latvia after attending Workplace Ninjas UK 2025, which took place in the beautiful city of Edinburgh. Let us tell you how great it was. [Download our session slides].</p>
<!-- -->
<p>We’re back in Latvia after attending <strong><a href="https://wpninjas.uk/" target="_blank" rel="noopener noreferrer" class="">Workplace Ninjas UK 2025</a></strong>, which took place in the beautiful city of Edinburgh.</p>
<p><img decoding="async" loading="lazy" alt="Beautiful city of Edinburgh" src="https://blog.masterpackager.com/assets/images/uk_ninjas_city-af077a4619-4e435edf22d996f8afe3aa882a18d653.jpg" width="818" height="1091" class="img_ev3q"></p>
<p>This was our first time attending a Workplace Ninjas summit and our first time visiting the beautiful city of Edinburgh. We flew in on Sunday, checked into our hotel, and joined the pre-event party with the organizers, speakers, and attendees. It was a great icebreaker before the event. We talked, ate snacks, played games, threw darts, and even learned how to throw an axe.</p>
<p><img decoding="async" loading="lazy" alt="Pre-event party with the organizers" src="https://blog.masterpackager.com/assets/images/uk_ninjas_pre-party-fdbcea0bc0-97ae73b73499fe692db1a30c9e9385b8.jpg" width="1455" height="1091" class="img_ev3q"></p>
<p>The two-day conference kicked off the next day. It was exciting to meet our happy existing customers and hear their stories in person. As always, our <em>“I am Master Packager”</em> stickers and <a href="https://x.com/terencebeggs/status/1935680550280573261" target="_blank" rel="noopener noreferrer" class="">mouse mats</a> were a hit.</p>
<p><img decoding="async" loading="lazy" alt="Master Packager booth." src="https://blog.masterpackager.com/assets/images/uk_ninjas_edijs_booth-df6386a8c0-759086889cd5bc1ae3d07f7f7b9f5a6b.jpg" width="818" height="1091" class="img_ev3q"></p>
<p>For us, an excellent conference is one with many attendees looking for an application packaging solution or those who have not yet discovered the benefits of proper packaging practices. That’s where we come in with our sessions.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="our-sessions">Our Sessions<a href="https://blog.masterpackager.com/WPNinjasUK2025#our-sessions" class="hash-link" aria-label="Direct link to Our Sessions" title="Direct link to Our Sessions" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-how-to-become-a-master-packager-package-any-custom-app-for-intune-with-confidence">1. How to Become a Master Packager: Package Any Custom App for Intune with Confidence<a href="https://blog.masterpackager.com/WPNinjasUK2025#1-how-to-become-a-master-packager-package-any-custom-app-for-intune-with-confidence" class="hash-link" aria-label="Direct link to 1. How to Become a Master Packager: Package Any Custom App for Intune with Confidence" title="Direct link to 1. How to Become a Master Packager: Package Any Custom App for Intune with Confidence" translate="no">​</a></h3>
<p>In this session, we reminded everyone why application packaging is needed for organizational efficiency. We shared our workflow for packaging teams and demonstrated how our software can help package any application for Intune.</p>
<p><img decoding="async" loading="lazy" alt="Toms Knostenbergs" src="https://blog.masterpackager.com/assets/images/uk_ninjas_toms_psadt_session-013a80e008-36bd18c3901c709f62010c8bd52670b1.jpg" width="3072" height="3840" class="img_ev3q"></p>
<p>⬇️ <a href="https://cdn.masterpackager.com/uploads/file_archive/how-to-become-a-master-packager.mp4" target="_blank" rel="noopener noreferrer" class=""><strong>Download video slides: How to Become a Master Packager: Package Any Custom App for Intune with Confidence</strong></a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-the-ui-for-psappdeploytoolkit---master-psadt-v4">2. The UI for PSAppDeployToolkit - Master PSADT V4<a href="https://blog.masterpackager.com/WPNinjasUK2025#2-the-ui-for-psappdeploytoolkit---master-psadt-v4" class="hash-link" aria-label="Direct link to 2. The UI for PSAppDeployToolkit - Master PSADT V4" title="Direct link to 2. The UI for PSAppDeployToolkit - Master PSADT V4" translate="no">​</a></h3>
<p>Here we explained the importance of PSADT in application packaging. With PSADT V3 no longer supported, we showcased what’s new in V4.0.x and what’s coming in V4.1. We reminded why migrating to PSADT V4 in 2025 is needed to be up to the date and have a support from the open-source community. We also demonstrated how <strong><a href="https://www.masterpackager.com/master-wrapper" target="_blank" rel="noopener noreferrer" class="">Master Wrapper</a></strong>, our application, simplifies the migration from V3 to V4 and how huge value it can bring packaging any apps into PSADT V4 using the Master Wrapper.</p>
<p><img decoding="async" loading="lazy" alt="Session slides" src="https://blog.masterpackager.com/assets/images/uk_ninjas_slide1-688b63824d-c5d6a7988c14f669ef7b3c47441fd677.jpg" width="4096" height="1872" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Edijs Perkums" src="https://blog.masterpackager.com/assets/images/uk_ninjas_edijs_psadt_session-1950d33bd5-8601cbb71e80e8d7845f2f6ac455fb95.jpg" width="1872" height="4096" class="img_ev3q"></p>
<p>⬇️ <strong><a href="https://www.masterpackager.com/uploads/file_archive/the-ui-for-psappdeploytoolkit-master-psadt-v4-1.pdf" target="_blank" rel="noopener noreferrer" class="">Download slides: The UI for PSAppDeployToolkit - Master PSADT V4</a></strong></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="final-thoughts">Final Thoughts<a href="https://blog.masterpackager.com/WPNinjasUK2025#final-thoughts" class="hash-link" aria-label="Direct link to Final Thoughts" title="Direct link to Final Thoughts" translate="no">​</a></h2>
<p><strong>Workplace Ninjas UK</strong> was outstanding not just because of the amazing attendees but also thanks to the top of the class organization. Huge thanks to <a href="https://www.linkedin.com/in/deanellerby/" target="_blank" rel="noopener noreferrer" class="">Dean</a> and the team for setting this up.</p>
<p>We enjoyed this event and saw a great opportunity to help many new organizations adopt better application packaging practices that improve efficiency for their business, end-users, and IT teams.</p>
<p><img decoding="async" loading="lazy" alt="Edijs Perkums and Toms Knostenbers" src="https://blog.masterpackager.com/assets/images/uk_ninjas_toms_edijs_psadt_session-60cd7ed44f-0141bba69d7dc12c92cfa9f50a834df4.jpg" width="1455" height="1091" class="img_ev3q"></p>
<p>Until the next one.</p>
<p>Toms and Edijs from the Master Packager Team</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[App Management Newsletter - 23 May 2025]]></title>
            <link>https://blog.masterpackager.com/app-management-newsletter-23-may-2025</link>
            <guid>https://blog.masterpackager.com/app-management-newsletter-23-may-2025</guid>
            <pubDate>Fri, 23 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[App Management Newsletter covering Intune Win32 imports, Windows 11 security changes, and Master Packager updates.]]></description>
            <content:encoded><![CDATA[<p>This week has been rich with 3 major announcements in the app management space: 1. Intune now supports importing Win32 apps from the Microsoft Store. 2. Administrator protection, a new Windows 11 platform security feature, will make app management more challenging. 3. Master Packager new release gets more attractive for MSPs.</p>
<!-- -->
<p>This week has been rich with 3 major announcements in the app management space:</p>
<ol>
<li class=""><strong>Intune now supports importing Win32 apps from the Microsoft Store.</strong></li>
<li class=""><strong>Administrator protection, a new Windows 11 platform security feature, will make app management more challenging.</strong></li>
<li class=""><strong>Master Packager new release gets more attractive for MSPs.</strong></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-importing-win32-apps-from-the-microsoft-store-into-intune">1. Importing Win32 apps from the Microsoft Store into Intune<a href="https://blog.masterpackager.com/app-management-newsletter-23-may-2025#1-importing-win32-apps-from-the-microsoft-store-into-intune" class="hash-link" aria-label="Direct link to 1. Importing Win32 apps from the Microsoft Store into Intune" title="Direct link to 1. Importing Win32 apps from the Microsoft Store into Intune" translate="no">​</a></h2>
<ul>
<li class="">Announced at Microsoft Build.</li>
<li class="">The feature is currently in preview.</li>
<li class="">The search shows a “Win32” type, indicating that it is a Win32 app.</li>
<li class="">Logo is not selected automatically. 🤦‍♂️</li>
<li class="">No option to change the install command line.</li>
<li class="">The Microsoft Store app (new) search now shows AI apps and age-restricted apps as well.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Intune Microsoft Store app Win32 app type in the search" src="https://blog.masterpackager.com/assets/images/intune_win32_search-a2918bbd88-74d8744530aaea83993d6cec4380a4e8.png" width="1469" height="420" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Intune Microsoft Store app Win32 app type do not add logo on import" src="https://blog.masterpackager.com/assets/images/intune_win32_no_logo-a5e46f5aa5-52be8035f1475af27466bda38638d898.png" width="1051" height="935" class="img_ev3q"></p>
<p>Read more here: <a href="https://blogs.windows.com/windowsdeveloper/2025/05/19/microsoft-store-expands-opportunities-for-windows-app-developers/" target="_blank" rel="noopener noreferrer" class="">https://blogs.windows.com/windowsdeveloper/2025/05/19/microsoft-store-expands-opportunities-for-windows-app-developers/</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-administrator-protection-a-new-windows-11-platform-security-feature">2. Administrator protection: a new Windows 11 platform security feature<a href="https://blog.masterpackager.com/app-management-newsletter-23-may-2025#2-administrator-protection-a-new-windows-11-platform-security-feature" class="hash-link" aria-label="Direct link to 2. Administrator protection: a new Windows 11 platform security feature" title="Direct link to 2. Administrator protection: a new Windows 11 platform security feature" translate="no">​</a></h2>
<p>Announced at Microsoft Build. It’s important for IT Pros to understand how this feature will work and the impact it will have on desktop applications and the way they are packaged. This could potentially create issues for organizations that deploy per-user installers via Configuration Manager or Intune.</p>
<p>However, this needs to be tested before I can say for sure. There may be many applications that won’t work correctly due to the way files will be saved when an app is launched using admin privileges while the Administrator protection feature is enabled.</p>
<p>Read more here:</p>
<p><a href="https://blogs.windows.com/windowsdeveloper/2025/05/19/enhance-your-application-security-with-administrator-protection/" target="_blank" rel="noopener noreferrer" class="">https://blogs.windows.com/windowsdeveloper/2025/05/19/enhance-your-application-security-with-administrator-protection/</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-master-packager-2549272-release-highlights">3. Master Packager 25.4.9272 release highlights<a href="https://blog.masterpackager.com/app-management-newsletter-23-may-2025#3-master-packager-2549272-release-highlights" class="hash-link" aria-label="Direct link to 3. Master Packager 25.4.9272 release highlights" title="Direct link to 3. Master Packager 25.4.9272 release highlights" translate="no">​</a></h2>
<p>This week we launched a new version of the Master Packager software to help package applications better and faster.</p>
<p><img decoding="async" loading="lazy" alt="Master Packager add multiple tenants feature in Master Packager Toolbox" src="https://blog.masterpackager.com/assets/images/mp_25.4_add_intune_tenant-c88554675d-65cd1d75beb925e25b4d8b34a92d27b2.png" width="1392" height="959" class="img_ev3q"></p>
<ul>
<li class="">
<p>Added multi-tenant support for Intune upload. MSPs and larger organizations will love this.</p>
</li>
<li class="">
<p>Added group assignment support for Intune upload. If you test your packages in Intune via a specific user or device group, you will love this.</p>
</li>
<li class="">
<p><strong>Script builder for PSADT</strong> – A new tool that will help build your scripts better than AI and faster than doing it yourself.</p>
<p>The first script builder actions are for registries and Windows Firewall rules. We have a couple more actions in mind. Let us know what actions you want us to build next.</p>
</li>
<li class="">
<p>We fixed all reported bugs including the one reported 2 days before the release.</p>
</li>
<li class="">
<p>The new Master Packager update mechanism <a href="https://www.masterpackager.com/blog/Add-These-17-Lines-and-Your-App-Will-Auto-Update" target="_blank" rel="noopener noreferrer" class="">that we introduced in the previous version</a> is in action now:</p>
<ul>
<li class="">
<p>No need for admin rights.</p>
</li>
<li class="">
<p>No need to go to the website and download the installer.</p>
</li>
<li class="">
<p>There is a way to enable updates automatically, silently, in the background.</p>
<p>UI for that will be enabled later, but you can configure it from the settings file in the installdir.</p>
<p><img decoding="async" loading="lazy" alt="Master Packager new update notification" src="https://blog.masterpackager.com/assets/images/mp_update_notification-40bb2b91bd-a431a909b5066f2fb15f86f7bbd161be.png" width="588" height="362" class="img_ev3q"></p>
</li>
</ul>
</li>
</ul>
<p>Read more here:</p>
<p><a href="https://www.masterpackager.com/master-packager-release-notes/25.xxx/25.4.9272" target="_blank" rel="noopener noreferrer" class="">https://www.masterpackager.com/master-packager-release-notes/25.xxx/25.4.9272</a></p>
<p>Have a great weekend.</p>
<p><strong>Toms Knostenbergs</strong></p>
<p><em>Master Packager</em></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[VBScript Is Getting Deprecated - How To Prepare For It]]></title>
            <link>https://blog.masterpackager.com/vbscript</link>
            <guid>https://blog.masterpackager.com/vbscript</guid>
            <pubDate>Thu, 22 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Find out why Microsoft is deprecating VBScript, when it will happen, what the impact is, and how to prepare. Explore tools to make the transition easier.]]></description>
            <content:encoded><![CDATA[<p>In October 2023, Microsoft announced that VBScript will be deprecated. In future releases of Windows, VBScript will be available as a feature on-demand before its removal from the operating system. Why? When? What is the impact? How to prepare for it? Tools that can help.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what">What?<a href="https://blog.masterpackager.com/vbscript#what" class="hash-link" aria-label="Direct link to What?" title="Direct link to What?" translate="no">​</a></h2>
<p>In October 2023, Microsoft announced that <a href="https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features" target="_blank" rel="noopener noreferrer" class=""><strong>VBScript will be deprecated</strong></a>. In future releases of Windows, VBScript will be available as a <a href="https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/features-on-demand-v2--capabilities?view=windows-11" target="_blank" rel="noopener noreferrer" class=""><strong>Feature On Demand</strong></a> before its removal from the operating system.</p>
<p><img decoding="async" loading="lazy" alt="Microsoft has announced the deprecation of VBScript. In future Windows releases, VBScript will be available as a feature on demand before its complete removal from the operating system." src="https://blog.masterpackager.com/assets/images/vbsannouncement-66fa594779-28a073ae0bda04f9d05623feea11b49e.png" width="571" height="64" class="img_ev3q"></p>
<blockquote>
<p>*<strong>VBScript</strong> (“Microsoft Visual Basic Scripting Edition”) is a</p>
<p>scripting language developed by Microsoft.*</p>
</blockquote>
<hr>
<blockquote>
<p>*<strong>Feature On Demand (FODs)</strong> are Windows features that allow you to enable</p>
<p>and disable additional functionality for your devices at any time. On</p>
<p>Windows 11, you can access these features by navigating to Settings -&gt;</p>
<p>Apps -&gt; Optional features.*</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why">WHY?<a href="https://blog.masterpackager.com/vbscript#why" class="hash-link" aria-label="Direct link to WHY?" title="Direct link to WHY?" translate="no">​</a></h2>
<p>The reason why Microsoft is deprecating VBScript is because it’s a legacy scripting engine component that Microsoft does not recommend using unless it’s absolutely necessary, as it may contain security vulnerabilities. There are more modern languages available that offer better functionality like JavaScript and PowerShell.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="when">When?<a href="https://blog.masterpackager.com/vbscript#when" class="hash-link" aria-label="Direct link to When?" title="Direct link to When?" translate="no">​</a></h2>
<p>Microsoft shared their VBScript deprecation plan in their <a href="https://techcommunity.microsoft.com/t5/windows-it-pro-blog/vbscript-deprecation-timelines-and-next-steps/ba-p/4148301" target="_blank" rel="noopener noreferrer" class=""><strong>blog post</strong></a>. It will happen in three phases.</p>
<p><img decoding="async" loading="lazy" alt="VBScript deprecation timeline" src="https://blog.masterpackager.com/assets/images/a-visual-timeline-of-important-dates-for-vbscript-deprecation-phases-ff81728bfe-8dc143c93c84826e2151467a0f16cdbf.png" width="900" height="398" class="img_ev3q"></p>
<ul>
<li class=""><strong>Phase 1</strong> VBScript will be pre-installed on all Windows 11, version 24h2 and on by default as FODs.</li>
<li class=""><strong>Phase 2</strong> that will happen around 2027 VBScript will no longer be enabled as default. With</li>
<li class=""><strong>Phase 3</strong> VBScript will be retired and eliminated from future versions of Windows. When this could happen is currently unknown.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-the-impact">What is the impact?<a href="https://blog.masterpackager.com/vbscript#what-is-the-impact" class="hash-link" aria-label="Direct link to What is the impact?" title="Direct link to What is the impact?" translate="no">​</a></h2>
<p>VBScript is frequently used by organization in-house development teams for automating tasks and creating utility tools, as well as by Windows operating system administrators. While the industry standard for most tasks has shifted away from VBScript to languages like PowerShell and other scripting languages, there are still cases where VBScript remains widely used.</p>
<p>In application management, Microsoft Installer (MSI) capabilities often fall short of making the necessary changes when deploying application packages in an enterprise environment. Therefore, IT system administrators and application packagers utilize VBScript, either for MSI Custom Actions or as a separate file, to implement the required changes during package installation or uninstallation.</p>
<p>When installing MSI without VBScript feature the MSI will fail with the following error:</p>
<p><em>“The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2738.”</em></p>
<p><img decoding="async" loading="lazy" alt="TestVBS error message: The  installer  has  encountered  an  unexpected  errorinstalling  this  package.  This  may  indicate  a  problem with  this  package.  The  error  code  is  2738." src="https://blog.masterpackager.com/assets/images/msi_vbs_error-c359879a09-b9345e5ee0212bf56f0023ca735fc484.png" width="1010" height="630" class="img_ev3q"></p>
<p>When reading the MSI log file you will find the following error message:</p>
<p><em>“Error 2738: Could not access VBScript runtime for custom action”</em></p>
<p><img decoding="async" loading="lazy" alt="Error 2738: Could not access VBScript runtime for custom action" src="https://blog.masterpackager.com/assets/images/msilogfilevbsissue-16562baba9-b5f5e273b9c5f142fa19c84c240aa737.png" width="1014" height="147" class="img_ev3q"></p>
<p>Another scenario where IT system administrators rely on VBScript is when they need to run PowerShell scripts in a user’s context without triggering any pop-ups. Running a PowerShell script in a user’s context can result in opening and closing PowerShell windows, which can be disruptive and annoying for end users. As a solution, enterprise administrators turn to VBScript to launch the PowerShell script.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-prepare-to-work-without-vbscript">How to Prepare to Work Without VBScript?<a href="https://blog.masterpackager.com/vbscript#how-to-prepare-to-work-without-vbscript" class="hash-link" aria-label="Direct link to How to Prepare to Work Without VBScript?" title="Direct link to How to Prepare to Work Without VBScript?" translate="no">​</a></h2>
<p>Please note that at the time this blog post is written, it is still possible to use VBScript as an optional feature in the Windows OS. However, Microsoft’s official announcement of VBScript deprecation due to security reasons is a strong indicator that, in future Windows releases, VBScript may no longer be available. This could potentially disrupt organizations relying on this solution, causing issues and making things to not work as expected.</p>
<p>The exact timing of this change is currently unknown, as well as the specific files and libraries that will be removed from the Windows Operating System with VBScript feature removal. Therefore, it is a good idea to prepare your environment to not rely on deprecated Windows features.</p>
<p>Here are the steps we recommend organizations consider taking to prepare for a transition away from VBScript usage in their environment:</p>
<ol>
<li class="">Identify in-house developed applications that use VBScript and find suitable replacements, such as PowerShell or another programming language.</li>
<li class="">Assess third-party applications in your environment that may rely on VBScript, starting with older applications that are no longer actively developed.</li>
<li class="">Determine which MSI packages have VBScript Custom Actions or contain .vbs files in it, and replace them with PowerShell scripts or contact the vendor to make necessary adjustments.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tools-that-can-help">Tools that can help<a href="https://blog.masterpackager.com/vbscript#tools-that-can-help" class="hash-link" aria-label="Direct link to Tools that can help" title="Direct link to Tools that can help" translate="no">​</a></h2>
<p>Here is a list of tools and descriptions that can assist you in transitioning away from using VBScript:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="powershell">PowerShell<a href="https://blog.masterpackager.com/vbscript#powershell" class="hash-link" aria-label="Direct link to PowerShell" title="Direct link to PowerShell" translate="no">​</a></h3>
<p>Replace VBScript with PowerShell. Explore whether there might be an even better alternative to your current VBScript solution, such as Python.</p>
<p>For System Administrators, you may encounter situations where you need to run PowerShell .ps1 scripts silently without any pop-ups, a feature not currently supported by PowerShell. Ironically, some IT system administrators have used VBScript as a workaround to execute PowerShell scripts, but this is not a viable long-term solution due to the fact VBScript is being deprecated. For further discussion on this topic, you can refer to <a href="https://twitter.com/manelrodero/status/1720441627586523603" target="_blank" rel="noopener noreferrer" class=""><strong>this thread on X</strong></a> where industry experts discuss different options on how to overcome this issue.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="master-packager--detect-vbs-in-msimst">Master Packager – detect VBS in MSI/MST<a href="https://blog.masterpackager.com/vbscript#master-packager--detect-vbs-in-msimst" class="hash-link" aria-label="Direct link to Master Packager – detect VBS in MSI/MST" title="Direct link to Master Packager – detect VBS in MSI/MST" translate="no">​</a></h3>
<p>When working with MSI files use <a href="https://www.masterpackager.com/master-packager" target="_blank" rel="noopener noreferrer" class=""><strong>Master Packager</strong></a> to open, create, and edit MSI/MST files. Starting with <a href="https://www.masterpackager.com/support/release-notes" target="_blank" rel="noopener noreferrer" class=""><strong>version 23.6.8717</strong></a> Master Packager will detect if the MSI has VBScript Custom Actions. This functionality is supported in the <a href="https://www.masterpackager.com/pricing#MasterPackager" target="_blank" rel="noopener noreferrer" class=""><strong>Free Community Version</strong></a>.</p>
<p>When opening an MSI with Master Packager you will see red warning icon at top indicating that there is an VBScript Custom Action in the MSI/MST file.</p>
<p><img decoding="async" loading="lazy" alt="A screenshot of Master Packager software displaying a red warning icon at the top of the interface. The warning indicates the presence of a VBScript Custom Action in the opened MSI or MST file. The interface highlights the issue, guiding users to address deprecated VBScript elements in their package." src="https://blog.masterpackager.com/assets/images/vbswarning2-38aaa27515-1969cc554ec92a072b7a7f52154933c4.png" width="984" height="536" class="img_ev3q"></p>
<p>Same warning icon is visible in the Custom Action Advanced Editor view.</p>
<p><img decoding="async" loading="lazy" alt="A screenshot of the Custom Action Advanced Editor view in Master Packager software, signaling the presence of a VBScript Custom Action in the opened MSI or MST file." src="https://blog.masterpackager.com/assets/images/vbswarning1-309ed44678-3cdc55d9cf2ed5b614d10a014624fadc.png" width="947" height="348" class="img_ev3q"></p>
<p>We believe that a feature like this is a crucial functionality to be proactive and prevent issues going forward. If you use ORCA or InstEd to edit MSI files, then you will love working with Master Packager even more.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="master-packager--run-powershell-script-with-msi">Master Packager – Run PowerShell script with MSI<a href="https://blog.masterpackager.com/vbscript#master-packager--run-powershell-script-with-msi" class="hash-link" aria-label="Direct link to Master Packager – Run PowerShell script with MSI" title="Direct link to Master Packager – Run PowerShell script with MSI" translate="no">​</a></h3>
<p>With <a href="https://www.masterpackager.com/master-packager" target="_blank" rel="noopener noreferrer" class=""><strong>Master Packager Professional</strong></a> you can run a PowerShell script within an MSI or MST file and it takes just a few clicks.</p>
<ul>
<li class="">PowerShell is executed silently without any Window flickers.</li>
<li class="">PowerShell error logging is handled in the MSI log file</li>
<li class="">PowerShell script is working during Intune and SCCM system context deployments</li>
</ul>
<p>We have made sure that adding and running PowerShell scripts with Master Packager in MSI or MST is easy as possible. Here is how to add PowerShell in an MSI with a 6 simple clicks:</p>
<ol>
<li class="">
<p>In Master Packager Advanced Editor got to Custom Actions</p>
</li>
<li class="">
<p>Choose Predefined Actions</p>
</li>
<li class="">
<p>Press Add New Predefined Action</p>
<p><img decoding="async" loading="lazy" alt="The image shows the process in Master Packager&amp;#39;s Advanced Editor where a user navigates to the &amp;quot;Custom Actions&amp;quot; section, selects &amp;quot;Predefined Actions,&amp;quot; and clicks &amp;quot;Add New Predefined Action&amp;quot; to create a new predefined action in an MSI or MST package. The interface highlights a streamlined approach to managing custom actions" src="https://blog.masterpackager.com/assets/images/psinmsi-1-0d2c5c7391-f2592c178bdbb72da53025394c6adab0.png" width="881" height="525" class="img_ev3q"></p>
</li>
<li class="">
<p>Select Run PowerShell Script</p>
</li>
<li class="">
<p>Press Add</p>
<p><img decoding="async" loading="lazy" alt="Choose &amp;quot;Run PowerShell Script&amp;quot; from the options and press &amp;quot;Add&amp;quot; to include it in the MSI or MST package." src="https://blog.masterpackager.com/assets/images/psinmsi-2-606a7e35d1-d0a082d307725217dc473ff12e61a8ef.png" width="882" height="522" class="img_ev3q"></p>
</li>
<li class="">
<p>Browse PowerShell .PS1 file or Edit it in the software</p>
<p><img decoding="async" loading="lazy" alt="After selecting &amp;quot;Run PowerShell Script&amp;quot; and pressing &amp;quot;Add,&amp;quot; they either browse to upload a PowerShell .PS1 file or edit the script directly within the software. The interface highlights flexibility and ease of use for customizing MSI or MST packages" src="https://blog.masterpackager.com/assets/images/psinmsi-3-b455e80618-f1f84eec41985091ca8745c52c1b61ee.png" width="940" height="608" class="img_ev3q"></p>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="vbscript-remediation-by-dan-gough">VBScript-Remediation by Dan Gough<a href="https://blog.masterpackager.com/vbscript#vbscript-remediation-by-dan-gough" class="hash-link" aria-label="Direct link to VBScript-Remediation by Dan Gough" title="Direct link to VBScript-Remediation by Dan Gough" translate="no">​</a></h3>
<p>To understand which of your current MSI/MST files has VBScript Custom Actions or .vbs files in the file table you want to check out these <a href="https://github.com/DanGough/Packaging-Deployment-Scripts/tree/main/VBScript%20Remediation" target="_blank" rel="noopener noreferrer" class=""><strong>VBScript-Remediation script created by awesome Dan Gough</strong></a>. This comes very handy to validate multiple MSI and MST files.</p>
<p>It is available for free under MIT license.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="suggestions-from-microsoft">Suggestions from Microsoft<a href="https://blog.masterpackager.com/vbscript#suggestions-from-microsoft" class="hash-link" aria-label="Direct link to Suggestions from Microsoft" title="Direct link to Suggestions from Microsoft" translate="no">​</a></h3>
<p>Microsoft posted <a href="https://techcommunity.microsoft.com/blog/windows-itpro-blog/vbscript-deprecation-detection-strategies-for-windows/4414325" target="_blank" rel="noopener noreferrer" class="">a blog post about VBScript deprecation detection strategies</a>. In this blog posts Microsoft suggest to use Sysmon to monitor VBScript usage, review VBScript dependencies in Group Policy, Scan for .vbs files across the system and Scan custom MSI packages for embedded VBScript.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://blog.masterpackager.com/vbscript#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>VBScript is a feature that is being deprecated due to security reasons and starting with Windows 11 23H2 is available as Feature On Demand. It is unknown when it will be removed completely therefore it is smart to prepare organizations and the software that use this previously widely used solution and replace it with other tools. It comes in handy to know tools like <a href="https://www.masterpackager.com/products" target="_blank" rel="noopener noreferrer" class=""><strong>Master Packager</strong></a> that can help organizations and software developers to understand where VBScript is currently used.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[MEM Summit 2025 - event with a view]]></title>
            <link>https://blog.masterpackager.com/MEM-Summit-2025</link>
            <guid>https://blog.masterpackager.com/MEM-Summit-2025</guid>
            <pubDate>Wed, 30 Apr 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[For the first time ever, the Master Packager Team joined the Modern Endpoint Management Summit 2025 (MEM Summit 2025) in Paris, France]]></description>
            <content:encoded><![CDATA[<p>For the first time ever, the Master Packager Team joined the Modern Endpoint Management Summit 2025 (MEM Summit 2025) in Paris, France</p>
<!-- -->
<p>For the first time ever, the Master Packager Team joined the <a href="https://www.endpointsummit.com/" target="_blank" rel="noopener noreferrer" class="">Modern Endpoint Management Summit 2025</a> (MEM Summit 2025) in Paris, France. This was an amazing event to meet our existing customers and partners, and to show others how we can help with application packaging and management.</p>
<p><img decoding="async" loading="lazy" alt="MEM Summit 2025 Master Packager booth." src="https://blog.masterpackager.com/assets/images/memsummit2025-booth-04ac9f56f5-c1e153cc6573a7e9038e4698f93f93ac.jpg" width="1628" height="1221" class="img_ev3q"></p>
<p>The attendees were fantastic. We met people from all around the world with diverse expertise and a shared eagerness to learn more.</p>
<p><img decoding="async" loading="lazy" alt="With Trond Eirik Haavarstein " src="https://blog.masterpackager.com/assets/images/memsummit2025-witheric-792627c805-590a905d73e446f68afe3cd0d7425830.jpg" width="1633" height="1225" class="img_ev3q"></p>
<p>We participated as a Silver Sponsor, which gave us the opportunity to set up a booth and share our knowledge and tooling during one of the sessions.</p>
<p>In our session, we talked about why application packaging is so important, and how organizations can package any application like a Master Packager.</p>
<p><img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/memsummit2025-session-ed8d079471-afccf9a6178b23edeead05eab4f62073.jpg" width="2169" height="1221" class="img_ev3q"></p>
<p>At our booth, we answered questions about our products and application packaging. As a goodie item, we brought our “<a href="https://x.com/xenappblog/status/1916813385645051950" target="_blank" rel="noopener noreferrer" class="">I am Master Packager</a>” mouse mat, which makes packaging a bit more comfortable and more beautiful.</p>
<p>The hotel where the event took place had an amazing sky bar with an incredible view of Paris.</p>
<p><img decoding="async" loading="lazy" alt="MEM Summit Sky Bar view 1" src="https://blog.masterpackager.com/assets/images/memsummit2025-skybar1-a654bdeda1-8b33fc04953408a7f6e57abac0c4e01e.jpg" width="919" height="1225" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="MEM Summit Sky Bar view 1" src="https://blog.masterpackager.com/assets/images/memsummit2025-skybar2-05e7873b6f-400ea4ee5fe5f6a79d04ee089a27ed4c.jpg" width="616" height="1095" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="MEM Summit Sky Bar view 3" src="https://blog.masterpackager.com/assets/images/memsummit2025-skybar3-a3f4245789-f4304ed0dd21a0c0bb598233aea569ba.jpg" width="919" height="1225" class="img_ev3q"></p>
<p>You can meet us in person and grab your own “I am Master Packager” mouse mat at <a href="https://wpninjas.uk/" target="_blank" rel="noopener noreferrer" class="">Workplace Ninjas UK 2025 on 16-17 June 2025</a>, and at <a href="https://appmanagevent.com/" target="_blank" rel="noopener noreferrer" class="">AppManagEvent 2025 on 10 October 2025</a>.</p>
<p>We love talking about application packaging and helping you become a <a href="https://www.masterpackager.com/it-pro" target="_blank" rel="noopener noreferrer" class="">Master Packager</a>.</p>
<p>We hope to see you in person at one of the upcoming events.</p>
<p>The Master Packager Team</p>
<p><img decoding="async" loading="lazy" alt="Edijs and Toms" src="https://blog.masterpackager.com/assets/images/memsummit2025-tomsedijs-516ab27a30-a0543ba31268a91cb7cbabe625b3c6e2.jpg" width="1354" height="1039" class="img_ev3q"></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Add These 17 Lines and Your App Will Auto-Update]]></title>
            <link>https://blog.masterpackager.com/Add-These-17-Lines-and-Your-App-Will-Auto-Update</link>
            <guid>https://blog.masterpackager.com/Add-These-17-Lines-and-Your-App-Will-Auto-Update</guid>
            <pubDate>Wed, 16 Apr 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to add auto-update functionality to Windows applications using Master Packager Dev with only 17 lines of configuration.]]></description>
            <content:encoded><![CDATA[<p>Automatically updating software sounds like a standard functionality that software should have, right? But that is not the case in the overwhelming majority of Windows applications. Why is that, and how did we just fix that?</p>
<!-- -->
<p>Automatically updating software sounds like a standard functionality that software should have, right? But that is not the case in the overwhelming majority of Windows applications. Why is that, and how did we just fix that?</p>
<p>We’ve seen more than 10,000 applications with their flows and advantages when it comes to auto-update. This month, we implemented auto-update mechanism for our applications. That led us to the conclusion that the main reasons we don’t see solid auto-updating mechanisms boil down to three factors: lack of knowledge, complicated systems, and expensive solutions. Today, we make available our solution that will focus on solving all three of these problems for software vendors.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-lack-of-knowledge">1. Lack of knowledge<a href="https://blog.masterpackager.com/Add-These-17-Lines-and-Your-App-Will-Auto-Update#1-lack-of-knowledge" class="hash-link" aria-label="Direct link to 1. Lack of knowledge" title="Direct link to 1. Lack of knowledge" translate="no">​</a></h2>
<p>To create an installer that auto-updates, developers must understand key aspects of the Windows operating system. The solution must be secure and user-friendly. Home users will install software on their own. IT pros will use the installer to update thousands of endpoints in their organizations. You must understand not only the Windows OS but also consumer needs and requirements. Most software vendors mainly think about home users and often exclude organizations. Organizations may want to install their app for thousands of users at once via deployment solutions like Microsoft Intune, where IT Pros may want an easy way to disable the updates. Or leave it enabled if the auto-update functionality is very good. That would depend on the application type (business-critical or not), but we see many organizations leave auto-updates enabled for Google Chrome. That’s because the auto-update mechanism is so good. We want to make an alternative solution and make it available for everyone.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-complicated-systems">2. Complicated systems<a href="https://blog.masterpackager.com/Add-These-17-Lines-and-Your-App-Will-Auto-Update#2-complicated-systems" class="hash-link" aria-label="Direct link to 2. Complicated systems" title="Direct link to 2. Complicated systems" translate="no">​</a></h2>
<p>Even when you have the knowledge, it is still complicated to develop such functionality internally. The system needs to cover all security issues, be flawless for users, be integrated into the installer, check running processes, and so on. For most organizations and developers, that will be too time-consuming and expensive. It is just easier to say: “Go to our website and download a newer** version from there”.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-expensive-solutions">3. Expensive solutions<a href="https://blog.masterpackager.com/Add-These-17-Lines-and-Your-App-Will-Auto-Update#3-expensive-solutions" class="hash-link" aria-label="Direct link to 3. Expensive solutions" title="Direct link to 3. Expensive solutions" translate="no">​</a></h2>
<p>Learning, building, and maintaining such a system takes time, and time is money. With money, you can buy ready-made solutions, but from what we have learned, even paid solutions have one or all three of these problems, which translate into an expensive solution.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-we-solve-these-problems">How we solve these problems?<a href="https://blog.masterpackager.com/Add-These-17-Lines-and-Your-App-Will-Auto-Update#how-we-solve-these-problems" class="hash-link" aria-label="Direct link to How we solve these problems?" title="Direct link to How we solve these problems?" translate="no">​</a></h2>
<p>We used our over a decade of experience seeing how others have built their applications and created auto-update functionality for our own applications. We follow the principle: build for ourselves, and then once we have solved our own problems, we make the solution available for others. This is that day.</p>
<p>Auto-updates should happen seamlessly. The best experience is when you launch the application and it is already updated without you ever noticing anything. That is exactly how Master Packager Dev Auto-Update functionality can work - in the background.</p>
<p>I say can, because you can of course disable it. We know that there are types of applications, organizations and users who want to control what updates and when. That is why it is possible to disable auto-update functionality completely or leave only notifications about an available update so that the user can trigger the update manually.</p>
<p>Master Packager Dev auto-update is built using a Windows service that can update the per-machine MSI even for limited users, similarly to how Google Chrome updates work. You need admin rights just during the first app installation, and then you can forget about updating it ever again.</p>
<p>It takes only 18 lines of JSON to put auto-update functionality in place in your solution. All with the most basic information that every developer will know.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">    "updater": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "serviceName": "MasterPackager.Updater",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "serviceDisplayName": "Master Packager Updater",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "latestVersionDescriptor": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "url": "https://www.masterpackager.com/api/latest-version/mp",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "installerUrlMatcher": "(?&lt;=\"URL\":\")[^\"]+",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "versionMatcher": "(?&lt;=\"Version\":\")[^\"]+",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "checkSumMatcher": "(?&lt;=\"SHA256\":\")[^\"]+"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      },</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "scheduling": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "enabled": false</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      },</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "notifications": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "enabled": true,</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "triggers": [</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">	        "MasterPackager",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">	        "MasterRepackager",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">	        "MasterWrapper",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">	        "MasterPackager.Toolbox" ]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></div></code></pre></div></div>
<ul>
<li class=""><code>serviceName</code> - Name of your update service.</li>
<li class=""><code>serviceDisplayName</code> - Display name of your update service.</li>
<li class=""><code>latestVersionDescriptor</code> - Describes retrieval and parsing of the latest available version metadata.</li>
<li class=""><code>url</code> - URL for the GET API that returns a simple response (JSON, XML, plain text, etc.) indicating where to download and how to validate the latest version of the application. Must be an HTTPS URL.</li>
<li class=""><code>installerUrlMatcher</code> - RegEx pattern to read the URL from which to download the latest installer file.</li>
<li class=""><code>versionMatcher</code> - RegEx pattern to read the latest version that will be compared with the currently installed version.</li>
<li class=""><code>checkSumMatcher</code> - RegEx pattern to read the SHA256 checksum that will be compared with the checksum of the downloaded file.</li>
<li class=""><code>scheduling</code> - Enable or disable silent automatic updates that happen in the background while the app is not running.</li>
<li class=""><code>notifications</code> - Enable or disable update notifications for the application which show up when specified processes are running.</li>
<li class=""><code>triggers</code> - Application process names that trigger an update notification upon application launch.</li>
</ul>
<p>Notification when launching the app and there is a newer version available.</p>
<p><img decoding="async" loading="lazy" alt="Notification when launching the app and there is a newer version available." src="https://blog.masterpackager.com/assets/images/mp_23.3_update1-f78dd5461b-7deada687fb6211fc7baaf95eb069b4f.png" width="720" height="370" class="img_ev3q"></p>
<p>Installation progress bar.</p>
<p><img decoding="async" loading="lazy" alt="Installation progress bar." src="https://blog.masterpackager.com/assets/images/mp_23.3_update_install1-abe603c7ec-ea10fdf77b46d4c34f87aefc008bafb9.png" width="720" height="370" class="img_ev3q"></p>
<p>Close conflicting processes view.</p>
<p><img decoding="async" loading="lazy" alt="Close conflicting processes view." src="https://blog.masterpackager.com/assets/images/mp_23.3_update_close_process1-3e46b171b6-ec6a93a9dcfc378285a2af3885dec7d0.png" width="720" height="466" class="img_ev3q"></p>
<p>Updates finished successfully.</p>
<p><img decoding="async" loading="lazy" alt="Updates finished successfully. " src="https://blog.masterpackager.com/assets/images/mp_23.3_update_done-f29b2d716a-e7ab16f809bb485c7e9ea9b6bf3158e9.png" width="511" height="318" class="img_ev3q"></p>
<p>We currently support auto-update only for MSI packages and you must use Master Packager Dev to implement auto-update functionality flawlessly. The updater and the newer version must be signed with the same code signing certificate. Microsoft Trusted Signing is the recommended solution for signing your files.</p>
<p>Master Packager Dev and the auto-update feature are FREE if you use the application as a non-commercial product.</p>
<p>299 EUR/yearly for small and medium organizations.</p>
<p>999 EUR/yearly for larger enterprises.</p>
<p>Per organization.</p>
<p>For unlimited users and machines.</p>
<p>It is the most affordable solution out there. No paid solution is even close to the features and prices we offer. But what about open-source solutions, they are free, aren’t they? No, they are not. To see if open-source is free or not, check the option for a consultancy package or the huge list of complicated documentation. However, we will help you build the best installer for free.</p>
<p>Our mission is to make application management easy and affordable. Auto-update is built to solve a large part of why application management is so complicated and expensive. If you want to make creating Windows application installations easier for you and the installing experience better for your users, consider choosing <a href="https://www.masterpackager.com/master-packager-dev" target="_blank" rel="noopener noreferrer" class="">Master Packager Dev</a>.</p>
<ul>
<li class="">
<p><strong>Download Master Packagers:</strong></p>
<p><a href="https://www.masterpackager.com/download/master-packager-dev" target="_blank" rel="noopener noreferrer" class="">https://www.masterpackager.com/download/master-packager-dev</a></p>
</li>
<li class="">
<p><strong>Documentation:</strong></p>
<p><a href="https://www.masterpackager.com/support-master-packager-dev/documentation" target="_blank" rel="noopener noreferrer" class="">https://www.masterpackager.com/support-master-packager-dev/documentation</a></p>
</li>
</ul>
<p>If you need help, let us know and we will help you build installers for your apps: <a href="mailto:info@masterpackager.com" target="_blank" rel="noopener noreferrer" class="">info@masterpackager.com</a></p>
<p>Application packaging shouldn’t be hard and expensive.</p>
<p>The Master Packager Team</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Master Packager 25.1.9138 Release Highlights]]></title>
            <link>https://blog.masterpackager.com/25.1.9138-release-highlights</link>
            <guid>https://blog.masterpackager.com/25.1.9138-release-highlights</guid>
            <pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Master Wrapper adds PSADT 4.0.4 support, recent projects, faster MSP wrapping, and improved MSI removal handling.]]></description>
            <content:encoded><![CDATA[<ol>
<li class="">Master Wrapper now supports the latest version of PSADT - 4.0.4. 2. Master Wrapper now shows recently opened projects 3. Remove MSI using the Product Name in PSADT V4 4. Wrap .MSP files faster 5. Master Wrapper saves you from trouble by not letting you save PSADT in specific Windows folders 6. Built-in snippets available for Master Wrapper community license users 7. Master Repackager warning when launched on physical PC.</li>
</ol>
<!-- -->
<p>Build Windows application packages that end-users love, enterprises want, and the Windows OS needs. We’re here to help you become a Master Packager.</p>
<ol>
<li class="">
<p>Master Wrapper now supports the latest version of PSADT - 4.0.4. Master Wrapper is the best way to wrap your packages in PSAppDeployToolkit. No need to read the documentation. No need for extensive training of your beginner teammates. No need to check for typos. If you want to significantly improve your packaging speed and quality, look at Master Wrapper.</p>
<p><img decoding="async" loading="lazy" alt="Master Wrapper now supports the latest version of PSADT - 4.0.4." src="https://blog.masterpackager.com/assets/images/mp_25.1_1-e03ecc4502-0f462e658fc1d8a752e3f400d4817510.png" width="478" height="257" class="img_ev3q"></p>
</li>
<li class="">
<p>Master Wrapper now shows recently opened projects. You can also open a project by right-clicking the main PSADT AppDeployToolkit PS1 file.</p>
<p><img decoding="async" loading="lazy" alt="Master Wrapper now shows recently opened projects" src="https://blog.masterpackager.com/assets/images/mp_25.1_2-1db0d32235-9670e0792c277c771c6343327c4be676.png" width="1008" height="339" class="img_ev3q"></p>
</li>
<li class="">
<p>With Master Wrapper and PSADT V4 now you can also set to remove MSI using Product Name as an upgrade action. Before, we only supported it for PSADT V3.</p>
<p><img decoding="async" loading="lazy" alt="Master Wrapper: remove MSI using Product Name as an upgrade action" src="https://blog.masterpackager.com/assets/images/mp_25.1_3-9ab14d4cbb-890449f667826bde84db7f84042d4c88.png" width="1160" height="351" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Master Wrapper: remove MSI using Product Name as an upgrade action" src="https://blog.masterpackager.com/assets/images/mp_25.1_31-0d430894e6-701860e0afe341a99e00dd1e6acd8eb6.png" width="1121" height="690" class="img_ev3q"></p>
</li>
<li class="">
<p>Improved support for .MSP files. If you package app .MSP files into PSADT, you can now right-click the .MSP file to load general info and install command-line details automatically.</p>
</li>
<li class="">
<p>Now when saving a PSADT project from Master Wrapper, we’ll notify you if the destination folder is not empty. This is particularly useful for predefined locations, such as the user’s desktop or document folder, where saving PSADT with many files could cause issues.</p>
</li>
<li class="">
<p>We’ve made built-in snippets available from the script editor for Master Wrapper community license users.</p>
<p><img decoding="async" loading="lazy" alt="Built-in snippets available from the script editor for Master Wrapper" src="https://blog.masterpackager.com/assets/images/mp_25.1_6-c4e4d39e60-f00fd424b07d92546f653d7e7a783835.png" width="1040" height="742" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="built-in snippets available from the script editor for Master Wrapper" src="https://blog.masterpackager.com/assets/images/mp_25.1_61-f171abad97-9c0988adc3340df9105424fbb3fb4b75.png" width="1111" height="681" class="img_ev3q"></p>
</li>
<li class="">
<p>Proper repackaging should be done on a clean Virtual Machine, but not everyone knows that. Now, users launching Master Repackager on a physical PC will be informed of this best practice.</p>
<p><img decoding="async" loading="lazy" alt="Master Repackager: Physical PC detected alert" src="https://blog.masterpackager.com/assets/images/mp_25.1_4-f8138414f5-748a827c6d6f1e03a62b965fc25e4cda.png" width="732" height="687" class="img_ev3q"></p>
</li>
<li class="">
<p>Automated upgrade table updates. Packagers often copy a previous package MSI to use as a template for a newer version and then increase the MSI version. We now detect this and automatically update the upgrade table references. It’s a small change, but it saves a lot of time in the long run.</p>
</li>
</ol>
<p>We’ve improved many other features in Master Packager and fixed all known bugs.</p>
<p>Many of these improvements were prioritized and added because our users told us what they were missing. Join the <a href="https://masterpackager.com/pricing" target="_blank" rel="noopener noreferrer" class="">Master Packager community</a> and become a Master Packager faster.</p>
<p><a href="https://www.masterpackager.com/support/release-notes" target="_blank" rel="noopener noreferrer" class=""><strong>See the full release notes here</strong></a></p>
<p><a href="https://www.masterpackager.com/pricing" target="_blank" rel="noopener noreferrer" class=""><strong>Download Master Packager here</strong></a></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Master Packager 24.9.9112 Release Highlights]]></title>
            <link>https://blog.masterpackager.com/24.9.9112-release-highlights</link>
            <guid>https://blog.masterpackager.com/24.9.9112-release-highlights</guid>
            <pubDate>Thu, 12 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Master Packager 24.9.9112 adds PSADT V4 support, IntelliSense editing, and improved Intune upload features.]]></description>
            <content:encoded><![CDATA[<ol>
<li class="">PSAppDeployToolkit (PSADT) V4 support 2. Sign PSAppDeployToolkit wrappers with your digital signature 3. IntelliSense for editing PSADT projects in the Master Wrapper Community version 4. Upload to Intune improvements 5. New feature: Auto-Upgrade Configuration for MSIs 6. Fixed all reported and found issues</li>
</ol>
<!-- -->
<p>Here is a new version of Master Packager 24.9.9112 so that you can build Windows application packages that end-users love, enterprises want, and the Windows OS needs. We’re here to help you become <a href="https://www.masterpackager.com/master-packager" target="_blank" rel="noopener noreferrer" class="">Master Packager</a> faster.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-new">What’s new?<a href="https://blog.masterpackager.com/24.9.9112-release-highlights#whats-new" class="hash-link" aria-label="Direct link to What’s new?" title="Direct link to What’s new?" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-psappdeploytoolkit-psadt-v4-support">1. PSAppDeployToolkit (PSADT) V4 support<a href="https://blog.masterpackager.com/24.9.9112-release-highlights#1-psappdeploytoolkit-psadt-v4-support" class="hash-link" aria-label="Direct link to 1. PSAppDeployToolkit (PSADT) V4 support" title="Direct link to 1. PSAppDeployToolkit (PSADT) V4 support" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Master Wrapper PSADT V4 support" src="https://blog.masterpackager.com/assets/images/mp-24.9-psadt-v4-eb46fb583a-ef2f5e503b0ab20e2c2ce6d957d5210e.png" width="1260" height="817" class="img_ev3q"></p>
<p>Now you can create and edit PSADT V4 projects effortlessly without learning new function names and risking having typos. All handled by <a href="https://www.masterpackager.com/master-wrapper" target="_blank" rel="noopener noreferrer" class="">Master Wrapper</a> – the UI for PSADT.</p>
<p><strong>This support also includes:</strong></p>
<ul>
<li class="">Saving templates as PSADT V4</li>
<li class="">Having ability to convert PSADT V4 packages with right click context menu to .intunewin files</li>
<li class="">Use Master Wrapper created PSADT V4 packages with Master Packager Toolbox for fast upload to Intune</li>
<li class="">We left PSADT V3 support, but going forward all new improvements will be focused on PSADT V4.</li>
<li class="">Option to select default template for PSADT- V3 or V4</li>
</ul>
<p>Learn all about new PSAppDeplyToolkit V4 and watch Master Wrapper wrapping in it <a href="https://www.youtube.com/watch?v=0L7GxEbiZZg" target="_blank" rel="noopener noreferrer" class="">here</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-sign-psappdeploytoolkit-wrappers-with-your-digital-signature">2. Sign PSAppDeployToolkit wrappers with your digital signature<a href="https://blog.masterpackager.com/24.9.9112-release-highlights#2-sign-psappdeploytoolkit-wrappers-with-your-digital-signature" class="hash-link" aria-label="Direct link to 2. Sign PSAppDeployToolkit wrappers with your digital signature" title="Direct link to 2. Sign PSAppDeployToolkit wrappers with your digital signature" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Master Wrapper digital signature feature that signs PSADT scripts" src="https://blog.masterpackager.com/assets/images/mp-24.9-psadt-code-signing-18bf3d748a-141b67193f7f3eb7cfa92b60b6983051.png" width="1168" height="821" class="img_ev3q"></p>
<p>It is important to sign your scripts with a digital signature as an extra layer of security. Organizations that have PowerShell execution policy set to all-signed means that PSADT packages must be signed.</p>
<p>Now, Master Wrapper can easily help sign all unsigned PSADT scripts.</p>
<p>We support following signing methods:</p>
<ul>
<li class=""><a href="https://azure.microsoft.com/en-us/products/trusted-signing" target="_blank" rel="noopener noreferrer" class="">Azure Trusted Signing</a></li>
<li class="">Certificate thumbprint</li>
<li class="">Certificate (.pfx;p12)</li>
</ul>
<p>The nice part is that if you use code signing certificate with Master Packager or <a href="https://www.masterpackager.com/master-repackager" target="_blank" rel="noopener noreferrer" class="">Master Repackager</a> then the same code singing certificate will appear in Master Wrapper.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-intellisense-for-editing-psadt-projects-in-master-wrapper-community-version">3. IntelliSense for editing PSADT projects in Master Wrapper Community version<a href="https://blog.masterpackager.com/24.9.9112-release-highlights#3-intellisense-for-editing-psadt-projects-in-master-wrapper-community-version" class="hash-link" aria-label="Direct link to 3. IntelliSense for editing PSADT projects in Master Wrapper Community version" title="Direct link to 3. IntelliSense for editing PSADT projects in Master Wrapper Community version" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Master Wrapper Script Editor now support IntelliSense for all Master Wrapper license versions." src="https://blog.masterpackager.com/assets/images/mp-24.9-intellisense-8bbf8fb083-f119d03b341c054f28d1cc6bc263304f.png" width="1210" height="511" class="img_ev3q"></p>
<p>With this version we have enabled IntelliSense for the Master Wrapper free Community version. This is amazing feature that will:</p>
<ul>
<li class=""><strong>Reduce learning curve</strong>: It allows users to quickly find the new PSADT v4 functions and their new parameters without reading the documentation.</li>
<li class=""><strong>Increase productivity</strong>: IntelliSense provides code suggestions and auto-completions, which can speed up the wrapping process.</li>
<li class=""><strong>Cut down on errors</strong>: IntelliSense helps prevent typos and syntax mistakes.</li>
<li class=""><strong>Remove the need for any third-part software</strong>: like Visual Studio Code and save time as you will need only one software to build PSADT wrappers.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-upload-to-intune-improvements">4. Upload to Intune improvements<a href="https://blog.masterpackager.com/24.9.9112-release-highlights#4-upload-to-intune-improvements" class="hash-link" aria-label="Direct link to 4. Upload to Intune improvements" title="Direct link to 4. Upload to Intune improvements" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Master Packager Toolbox upload to Intune support." src="https://blog.masterpackager.com/assets/images/mp-24.9-upload-to-intune-5f658e3c5b-0f0b8cc10e34f1f2133e10ee1d02237b.png" width="1275" height="869" class="img_ev3q"></p>
<p>We have designed the best packaging flow for Intune – Wrap your package in PSADT with Master Wrapper where it will collect all the details required for Intune. Then use <a href="https://www.masterpackager.com/master-packager-toolbox" target="_blank" rel="noopener noreferrer" class="">Master Packager Toolbox</a> to convert package into .intunewin file and with one click upload to Intune.</p>
<p>With this version we added following details you can specify during packaging phase for smoother packaging and deployment process:</p>
<ul>
<li class="">Added information URL option and automatically fill it when loading data from MSI packages in Master Wrapper General page.</li>
<li class="">Added option to specify device restart behavior option for Intune when uploading from Master Packager Toolbox.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-new-feature-auto-upgrade-configuration-for-msis">5. New feature: Auto-Upgrade Configuration for MSIs<a href="https://blog.masterpackager.com/24.9.9112-release-highlights#5-new-feature-auto-upgrade-configuration-for-msis" class="hash-link" aria-label="Direct link to 5. New feature: Auto-Upgrade Configuration for MSIs" title="Direct link to 5. New feature: Auto-Upgrade Configuration for MSIs" translate="no">​</a></h3>
<p>One of the top questions we hear from IT Pros is how to properly set up MSI upgrade functionality. You must know that new MSI needs to have a different Product and Package codes, but the same at Upgrade code as previous MSI.</p>
<p>Now with the Master Packager Auto-Upgrade Configurator creating upgrades for previous versions is as easy as browsing previous MSI file, pressing the <strong>Fix All</strong> and <strong>Add &amp; Update</strong> buttons. That’s it. You also get to learn what exactly is needed for MSI to upgrade previous versions.</p>
<p><img decoding="async" loading="lazy" alt="Master Packager Auto-Upgrade Configurator showing issues to create upgrade for previous version." src="https://blog.masterpackager.com/assets/images/mp-24.9-upgrade-before-1fa18d0178-58d34194c15c320adcab229031951070.png" width="1366" height="800" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Master Packager Auto-Upgrade Configurator with all fix applied." src="https://blog.masterpackager.com/assets/images/mp-24.9-upgrade-after-cce49c0c41-5684afed5bf254287c068a0746bc567e.png" width="1352" height="786" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-fixed-all-reported-and-found-issues">6. Fixed all reported and found issues<a href="https://blog.masterpackager.com/24.9.9112-release-highlights#6-fixed-all-reported-and-found-issues" class="hash-link" aria-label="Direct link to 6. Fixed all reported and found issues" title="Direct link to 6. Fixed all reported and found issues" translate="no">​</a></h3>
<p>As always, we fixed every single reported bug. If you see any issues or have idea for improvements, we want to hear it: <a href="https://www.masterpackager.com/feedback" target="_blank" rel="noopener noreferrer" class="">www.masterpackager.com/feedback</a></p>
<p><strong>🗒️Read full release notes here:</strong></p>
<p><a href="https://www.masterpackager.com/support/release-notes" target="_blank" rel="noopener noreferrer" class="">https://www.masterpackager.com/support/release-notes</a></p>
<p><strong>⬇️ Download Master Packager here:</strong></p>
<p><a href="https://www.masterpackager.com/download" target="_blank" rel="noopener noreferrer" class="">https://www.masterpackager.com/download</a></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Master Packager 24.8.9063 release highlights]]></title>
            <link>https://blog.masterpackager.com/24.8.9063-release-highlights</link>
            <guid>https://blog.masterpackager.com/24.8.9063-release-highlights</guid>
            <pubDate>Thu, 24 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Master Packager 24.8.9063 adds modern code signing, improved Intune packaging, and PSADT integration to enhance the app packaging process.]]></description>
            <content:encoded><![CDATA[<ul>
<li class="">Added support for modern code signing - Improved packaging for Intune</li>
</ul>
<!-- -->
<p><strong>Master Packager 24.8.9063 is out 🎉</strong></p>
<p>We’re releasing a new version of Master Packager so that You can build Windows application packages that end-users love, enterprises want, and the Windows OS needs.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-new">What’s new?<a href="https://blog.masterpackager.com/24.8.9063-release-highlights#whats-new" class="hash-link" aria-label="Direct link to What’s new?" title="Direct link to What’s new?" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-added-support-for-modern-code-signing">1. Added support for modern code signing<a href="https://blog.masterpackager.com/24.8.9063-release-highlights#1-added-support-for-modern-code-signing" class="hash-link" aria-label="Direct link to 1. Added support for modern code signing" title="Direct link to 1. Added support for modern code signing" translate="no">​</a></h3>
<p><a href="https://www.masterpackager.com/master-packager" target="_blank" rel="noopener noreferrer" class="">Master Packager</a> and <a href="https://www.masterpackager.com/master-repackager" target="_blank" rel="noopener noreferrer" class="">Master Repackager</a> now support <a href="https://learn.microsoft.com/en-us/azure/trusted-signing/overview" target="_blank" rel="noopener noreferrer" class="">Trusted Signing</a> and HSM signing.</p>
<p><img decoding="async" loading="lazy" alt="Digital signature option displayed in Master Packager." src="https://blog.masterpackager.com/assets/images/24.8-trusted_signing-54b970c0aa-32c89f4991638f3803638f1853c4bffa.png" width="1063" height="523" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-improved-packaging-for-intune">2. Improved packaging for Intune<a href="https://blog.masterpackager.com/24.8.9063-release-highlights#2-improved-packaging-for-intune" class="hash-link" aria-label="Direct link to 2. Improved packaging for Intune" title="Direct link to 2. Improved packaging for Intune" translate="no">​</a></h3>
<p>Now when wrapping packages into <a href="https://www.masterpackager.com/blog/psadt" target="_blank" rel="noopener noreferrer" class="">PSAppDeployToolkit (PSADT)</a> with the <a href="https://www.masterpackager.com/master-wrapper" target="_blank" rel="noopener noreferrer" class="">Master Wrapper</a> and uploading them to Intune using the <a href="https://www.masterpackager.com/master-packager-toolbox" target="_blank" rel="noopener noreferrer" class="">Master Packager Toolbox</a> Intune feature we support following properties:</p>
<ul>
<li class="">Notes</li>
<li class="">Developer</li>
<li class="">Category</li>
<li class="">Detection script</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Package detection and additional information highlighted in Master Wrapper" src="https://blog.masterpackager.com/assets/images/24.8-master_wrapper_detection_script-8a7d66132e-c6853d140cc09a5ee16dd833cf5df1a2.png" width="1213" height="1085" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Package detection and additional information highlighted in Master Packager Toolbox" src="https://blog.masterpackager.com/assets/images/24.8-properties-for-intune-979056384d-d43d21ca438d087a2b323b238c4ce758.png" width="1274" height="976" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-fixed-all-reported-bugs">3. Fixed all reported bugs<a href="https://blog.masterpackager.com/24.8.9063-release-highlights#3-fixed-all-reported-bugs" class="hash-link" aria-label="Direct link to 3. Fixed all reported bugs" title="Direct link to 3. Fixed all reported bugs" translate="no">​</a></h3>
<p>As always, we fix all reported and found bugs. You shouldn’t have anything stopping you from becoming a Master Packager.</p>
<p>Try out Master Packager and become a Master Packager that saves time and money.</p>
<p><strong><a href="https://www.masterpackager.com/support/release-notes" target="_blank" rel="noopener noreferrer" class="">Full release notes</a></strong></p>
<p><strong><a href="https://www.masterpackager.com/download" target="_blank" rel="noopener noreferrer" class="">Download Master Packager</a></strong></p>
<p>The Master Packager Team</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AppManagEvent 2024]]></title>
            <link>https://blog.masterpackager.com/AppManagEvent-2024</link>
            <guid>https://blog.masterpackager.com/AppManagEvent-2024</guid>
            <pubDate>Mon, 21 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Two weeks ago, we were at AppManagEvent 2024, and it was filled with positive energy and technical insights.]]></description>
            <content:encoded><![CDATA[<p>Two weeks ago, we were at AppManagEvent 2024, and it was filled with positive energy and technical insights.</p>
<!-- -->
<p>Two weeks ago, we were at <a href="https://appmanagevent.com/" target="_blank" rel="noopener noreferrer" class="">AppManagEvent 2024</a>, and it was filled with positive energy and technical insights.</p>
<p>It was so rewarding to meet face-to-face with <a href="https://www.masterpackager.com/products" target="_blank" rel="noopener noreferrer" class="">Master Packager</a> customers who have been relying on our software for years, as well as with those new to Master Packager. Showing them how we can help fuels us and keeps us motivated to build more and better solutions.</p>
<p>I really enjoyed sharing the lessons I took away from so many great discussions with application packagers. These conversations help us work on behalf of the people we serve and drive our mission—<strong>making application management easy and affordable</strong>.</p>
<p><a href="https://www.youtube.com/watch?v=bvhU8fmr3W0" target="_blank" rel="noopener noreferrer" class="">Watch full session on YouTube.</a></p>
<p><a href="https://www.youtube.com/embed/bvhU8fmr3W0?si=C7OD1HEjFk5_sJSx" target="_blank" rel="noopener noreferrer" class="">Embedded content</a></p>
<p>A huge thank you to <a href="https://www.linkedin.com/in/coertbosker/" target="_blank" rel="noopener noreferrer" class="">Coert Bosker</a> and the team for organizing such a fantastic event where we can geek out on all things app management, with the shared goal of helping each other improve.</p>
<p><img decoding="async" loading="lazy" alt="Toms and Edijs at the Master Packager booth." src="https://blog.masterpackager.com/assets/images/ame2024-1-c756a8e074-c9925d7b0408833463c2ab30a31e17ea.jpg" width="1235" height="1072" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="AppManagEvent 2024 - Master Packager" src="https://blog.masterpackager.com/assets/images/ame2024-2-9a54ce1d1e-4f58c877840c14cc26becc408179129c.jpg" width="1794" height="1428" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="AppManagEvent 2024 - Master Packager" src="https://blog.masterpackager.com/assets/images/ame2024-3-35cf13c71e-35d3a29060f9134cf55cfe3d38d6306b.jpg" width="2996" height="1712" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="AppManagEvent 2024 - Master Packager" src="https://blog.masterpackager.com/assets/images/ame2024-4-6c00b74d06-b78fd7c157b43795cc86990ae0316e18.jpg" width="2048" height="1536" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="AppManagEvent 2024 - Master Packager" src="https://blog.masterpackager.com/assets/images/ame2024-5-e39fae59e7-b86f22e6d99270edcfdddd2a2bdd2229.jpg" width="804" height="1072" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="AppManagEvent 2024 - Master Packager" src="https://blog.masterpackager.com/assets/images/ame2024-6-09209a71f0-c16b73c49109437cf212fb35054f0aec.jpg" width="804" height="1072" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="AppManagEvent 2024 - Master Packager" src="https://blog.masterpackager.com/assets/images/ame2024-7-a8c9a1327b-1e8a2d22398c79d3b71acbefe33f74d6.jpg" width="1429" height="1072" class="img_ev3q"></p>
<p>We’ll be back at <a href="https://appmanagevent.com/" target="_blank" rel="noopener noreferrer" class="">AppManagEvent 2025</a>, and we hope to see you all there too!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Master Packager 24.7.9021 release highlights]]></title>
            <link>https://blog.masterpackager.com/24.7.9021-release-highlights</link>
            <guid>https://blog.masterpackager.com/24.7.9021-release-highlights</guid>
            <pubDate>Thu, 12 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Master Wrapper adds PSADT templates, EXE data loading, right-click wrapping, and easier application upgrades.]]></description>
            <content:encoded><![CDATA[<p>Master Wrapper PSADT templates, Right-click → Wrap with Master Wrapper, Load data from EXE installers, Upgrade previous applications with PSADT with no documentation, and more.</p>
<!-- -->
<p>Master Packager 24.7.9021 is out 🎉</p>
<p>We’re releasing a new version of Master Packager so that You can build Windows application packages that end-users love, enterprises want, and the Windows OS needs.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-new">What’s new?<a href="https://blog.masterpackager.com/24.7.9021-release-highlights#whats-new" class="hash-link" aria-label="Direct link to What’s new?" title="Direct link to What’s new?" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-master-wrapper-psadt-templates">1. Master Wrapper PSADT templates<a href="https://blog.masterpackager.com/24.7.9021-release-highlights#1-master-wrapper-psadt-templates" class="hash-link" aria-label="Direct link to 1. Master Wrapper PSADT templates" title="Direct link to 1. Master Wrapper PSADT templates" translate="no">​</a></h3>
<p>Now you can create templates in Master Wrapper with your standard PSAppDeployToolkit configuration.</p>
<ul>
<li class="">Add, create, save, and update PSADT wrappers as templates.</li>
<li class="">Enables service providers packaging for multiple third parties to choose and apply PSADT templates quickly.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Master Wrapper start screen showing the option to choose and manage PSADT templates." src="https://blog.masterpackager.com/assets/images/24.7_start_page-d9813b2d24-74a0fddbfd6d1c9cb8fc3d3b868a8c10.png" width="1279" height="964" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Add new PSADT Template" src="https://blog.masterpackager.com/assets/images/24.7_add_templates-3e2cb4ff5b-addb345cd1f3ad5a28b124d7f9502018.png" width="1230" height="838" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="View all added templates" src="https://blog.masterpackager.com/assets/images/24.7_templates-f2d25a90fe-75cc072e744ba4aa0a0d6551aeff65c3.png" width="1264" height="932" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-right-click--wrap-with-master-wrapper">2. Right-click → Wrap with Master Wrapper<a href="https://blog.masterpackager.com/24.7.9021-release-highlights#2-right-click--wrap-with-master-wrapper" class="hash-link" aria-label="Direct link to 2. Right-click → Wrap with Master Wrapper" title="Direct link to 2. Right-click → Wrap with Master Wrapper" translate="no">​</a></h3>
<p>Previously you had to open the Master Wrapper app to start wrapping in PSADT. Now you can right-click on MSI/MST or EXE to start the wrapping process more conveniently.</p>
<p>Currently only supported from the legacy/classic context menu.</p>
<p><img decoding="async" loading="lazy" alt="Right-click to wrap." src="https://blog.masterpackager.com/assets/images/24.7_rightclick-1ab675e3cb-665f579e30af80d85669ef1222945c14.png" width="359" height="570" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-load-data-from-exe-installers">3. Load data from EXE installers<a href="https://blog.masterpackager.com/24.7.9021-release-highlights#3-load-data-from-exe-installers" class="hash-link" aria-label="Direct link to 3. Load data from EXE installers" title="Direct link to 3. Load data from EXE installers" translate="no">​</a></h3>
<p>When loading EXE to general information Master Wrapper will now read metadata from the EXE to fill out the main information for you - logo, name, version, publisher, and architecture. This will save some seconds and remove the boring part.</p>
<p><img decoding="async" loading="lazy" alt="Load metadata from EXE" src="https://blog.masterpackager.com/assets/images/24.7_load_exe-056c68bae1-f35eec3cfd2d381be6f289db9cfbfc0e.png" width="1388" height="1023" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-create-upgrade-for-previous-applications-with-psadt-without-reading-the-documentation">4. Create upgrade for previous applications with PSADT without reading the documentation<a href="https://blog.masterpackager.com/24.7.9021-release-highlights#4-create-upgrade-for-previous-applications-with-psadt-without-reading-the-documentation" class="hash-link" aria-label="Direct link to 4. Create upgrade for previous applications with PSADT without reading the documentation" title="Direct link to 4. Create upgrade for previous applications with PSADT without reading the documentation" translate="no">​</a></h3>
<p>It’s helpful when your package can upgrade previous applications making sure there will be no conflicts during deployment. To standardize the upgrade process and enable beginner packagers to become Master Packager faster we’re introducing the Master Packager Upgrade feature.</p>
<ul>
<li class="">Remove previous version of MSI and EXE with PSADT without reading the documentation.</li>
<li class="">Load previous version MSI to fill out upgrade data</li>
<li class="">Lower typo and issues rate when creating upgrade</li>
<li class="">Standardize your package upgrade functionality</li>
<li class="">Simply be more efficient when handling previous app removal so users can upgrade to the latest app version</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Upgrade section in Master Wrapper" src="https://blog.masterpackager.com/assets/images/24.7_remove_previous_apps-d5ad87435f-1274ba3ab70c2af299a77c858090bb90.png" width="1289" height="795" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Upgrade section - Remove MSI using product code in Master Wrapper" src="https://blog.masterpackager.com/assets/images/24.7_remove_msi_using_product_code-e1769ea934-f7e5dda9a00c2fa667a9c6f6a01d24a7.png" width="1289" height="818" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-fixed-all-reported-bugs">5. Fixed all reported bugs<a href="https://blog.masterpackager.com/24.7.9021-release-highlights#5-fixed-all-reported-bugs" class="hash-link" aria-label="Direct link to 5. Fixed all reported bugs" title="Direct link to 5. Fixed all reported bugs" translate="no">​</a></h3>
<p>As always, we fix all reported bugs as well we try to prioritize your suggestions.</p>
<p><strong>Read all release notes here:</strong></p>
<p><a href="https://www.masterpackager.com/support/release-notes" target="_blank" rel="noopener noreferrer" class="">https://www.masterpackager.com/support/release-notes</a></p>
<p><strong>Download Master Packager here:</strong></p>
<p><a href="https://masterpackager.com/download" target="_blank" rel="noopener noreferrer" class="">https://masterpackager.com/download</a></p>
<p>Have an easy package. Or hard, because you are Master Packager. :)</p>
<p>The Master Packager Team 🧙‍♂️</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to install drivers silently using MSI]]></title>
            <link>https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi</link>
            <guid>https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi</guid>
            <pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to install drivers with DPInst.exe and create reusable driver installation Custom Actions in Master Packager.]]></description>
            <content:encoded><![CDATA[<p>Learn how to find drivers, use DPInst.exe to install them, and create Custom Actions for driver installation in Master Packager. Discover how to streamline the process and create templates for future use to simplify packaging.</p>
<!-- -->
<p>In this blog post we will show following:</p>
<ul>
<li class="">How to find drivers</li>
<li class="">What you will need to install drivers:<!-- -->
<ul>
<li class="">Driver files</li>
<li class="">DPInst.exe to install drivers (It usually can be found in Windows ADK or next to driver files)</li>
<li class="">Certificates – In cases where a window is shown with the option to always trust the publisher you will need to add a certificate. The easiest way to find them is using regedit, but there are other options too.<!-- -->
<ul>
<li class="">Path to Trusted Publisher certificates: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\TrustedPublisher\Certificates</li>
</ul>
</li>
</ul>
</li>
<li class="">How to create Custom Actions for Installing Drivers using Master Packager</li>
<li class="">How to create Template for future use</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-find-dpinstexe-and-drivers">How to find DPInst.exe and drivers<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#how-to-find-dpinstexe-and-drivers" class="hash-link" aria-label="Direct link to How to find DPInst.exe and drivers" title="Direct link to How to find DPInst.exe and drivers" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="to-locate-dpinstexe">To locate DPInst.exe:<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#to-locate-dpinstexe" class="hash-link" aria-label="Direct link to To locate DPInst.exe:" title="Direct link to To locate DPInst.exe:" translate="no">​</a></h3>
<ol>
<li class="">
<p>Open Process Monitor. Stop the capture and clear data.</p>
</li>
<li class="">
<p>Run installation</p>
</li>
<li class="">
<p>When DPInst.exe install windows appears, start the capturing process and when it finishes stop the process</p>
</li>
<li class="">
<p>Add a filter – Set the Category to write. Add it and click apply <img decoding="async" loading="lazy" alt="Adding Filter in Process Monitor" src="https://blog.masterpackager.com/assets/images/drivers_process_monitor_category-52dbcfbd0d-7bb3fb79c0b90285287ace001d306c93.png" width="443" height="268" class="img_ev3q"></p>
</li>
<li class="">
<p>Search for a process with a name like DPInst*.exe, right click and select “Jump to”</p>
<p><img decoding="async" loading="lazy" alt="Locating dpinst.exe location in Process Monitor" src="https://blog.masterpackager.com/assets/images/drivers_process_monitor_jump_to-7999b5d840-3c9d666230efc77f3214a357b5855640.png" width="474" height="381" class="img_ev3q"></p>
</li>
</ol>
<blockquote>
<p>Note that the name of the executable can be slightly different. E.g.</p>
<p>DPINST.EXE, dpinst.x64.exe, dpinst-amd64.exe, dpinst-x86.exe,</p>
<p>DPInst32.exe etc.</p>
</blockquote>
<p>Copy DPInst.exe to a new folder.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="to-locate-driver-files-and-registries">To locate driver files and registries:<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#to-locate-driver-files-and-registries" class="hash-link" aria-label="Direct link to To locate driver files and registries:" title="Direct link to To locate driver files and registries:" translate="no">​</a></h3>
<ol>
<li class="">
<p>On clean VM open Master Repackager</p>
</li>
<li class="">
<p>Create first snapshot</p>
<p><img decoding="async" loading="lazy" alt="Creating first snapshot in Master Repackager " src="https://blog.masterpackager.com/assets/images/drivers_mr_first_snapshot-3dbf1439ab-2c566603e767ddbea68846b228c9e3cf.png" width="415" height="365" class="img_ev3q"></p>
</li>
<li class="">
<p>Run DPInst.exe</p>
</li>
<li class="">
<p>After installation create second snapshot</p>
<p><img decoding="async" loading="lazy" alt="Saving system changes in Master Repackager" src="https://blog.masterpackager.com/assets/images/drivers_mr_second_snap-1e9090a60b-f5b76b9ccc10af7b5b49d746d628bfad.png" width="415" height="366" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Cleanup screen in Master Repackager" src="https://blog.masterpackager.com/assets/images/drivers_mr_manage_files-3273c31eeb-e6d29aa9f6de33fad83eedabe7a54e38.png" width="397" height="352" class="img_ev3q"></p>
</li>
<li class="">
<p>In the files section under DriverStore locate driver files and copy them to the same folder where you copied DPInst.exe</p>
<p><img decoding="async" loading="lazy" alt="Locating driver files in Master Repackager" src="https://blog.masterpackager.com/assets/images/drivers_mr_files-ab3e2a42dd-525133ce44acded7c68eccb0b9f41f1f.png" width="414" height="318" class="img_ev3q"></p>
</li>
<li class="">
<p>Locate Trusted Publisher certificates in the registries section</p>
<p><img decoding="async" loading="lazy" alt="Locating Trusted Publisher certificate registries in Master Repackager" src="https://blog.masterpackager.com/assets/images/drivers_mr_registries-33ac3e04a8-f712187db70941af063a2165d4bdd989.png" width="619" height="399" class="img_ev3q"></p>
</li>
<li class="">
<p>Open them in RegEdit</p>
<p><img decoding="async" loading="lazy" alt="Exporting Trusted Publisher certificate registries from Registry Editor" src="https://blog.masterpackager.com/assets/images/drivers_regedit_export-ebe7ee75ca-7bfdf663e280ad782b9f916a6f3a92ab.png" width="621" height="365" class="img_ev3q"></p>
</li>
<li class="">
<p>Export the registries</p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-drivers-to-msi">Add drivers to MSI<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#add-drivers-to-msi" class="hash-link" aria-label="Direct link to Add drivers to MSI" title="Direct link to Add drivers to MSI" translate="no">​</a></h2>
<ol>
<li class="">Open MSI with Master Packager <img decoding="async" loading="lazy" alt="Master Packager Home screen" src="https://blog.masterpackager.com/assets/images/drivers_mp_home-118e28fb90-20ae462011dfa9f0944548972b19bf2b.png" width="700" height="469" class="img_ev3q"></li>
<li class="">In General Information add application name, version, vendor, ect.</li>
<li class="">Go to the Files section. Create a new folder under [ProgramFilesFolder]\vendors_folder and place the drivers in it <img decoding="async" loading="lazy" alt="Adding files to MST in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_create_new_folder-91fda5a6c4-f74d28d980dad6bcb0dcd956acf200b8.png" width="1414" height="930" class="img_ev3q"></li>
<li class="">Drag and drop located files and DPInst.exe exe into the folder and build a Cab file <img decoding="async" loading="lazy" alt="Creating CAB file in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_build_cab-7419009348-52bced65380ee59a3933b6253872922c.png" width="901" height="608" class="img_ev3q"></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-trusted-publishers-certificates">Add Trusted Publishers certificates<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#add-trusted-publishers-certificates" class="hash-link" aria-label="Direct link to Add Trusted Publishers certificates" title="Direct link to Add Trusted Publishers certificates" translate="no">​</a></h2>
<p>In Advanced Editor locate Registries section – drag and drop previously exported registries.</p>
<p><img decoding="async" loading="lazy" alt="Adding registries in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_add_registries-3a3b833ce2-a62b9f1008667f48683f5e6defa8d491.png" width="962" height="610" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-custom-actions">Create Custom Actions<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#create-custom-actions" class="hash-link" aria-label="Direct link to Create Custom Actions" title="Direct link to Create Custom Actions" translate="no">​</a></h2>
<p>Go to Custom Actions.</p>
<p><img decoding="async" loading="lazy" alt="Adding Custom Actions in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_ca-122b97bf07-86b4cb2f2c50f6fbc9f687d2d61ebdff.png" width="964" height="608" class="img_ev3q"></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="installation-custom-action">Installation Custom Action:<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#installation-custom-action" class="hash-link" aria-label="Direct link to Installation Custom Action:" title="Direct link to Installation Custom Action:" translate="no">​</a></h4>
<ol>
<li class="">
<p>Create a new Custom action called CA_Install_Drivers.</p>
</li>
<li class="">
<p>Choose type Exe in File table</p>
</li>
<li class="">
<p>As Execution Options select Deferred System</p>
</li>
<li class="">
<p>Return Processing – Synchronous, ignore exit code – this will indicate that at installation process it would ignore exit code</p>
</li>
<li class="">
<p>Scheduling Options set for Always</p>
</li>
<li class="">
<p>Select DPInst.exe file</p>
</li>
<li class="">
<p>In command line section add this line: /Q /F /LM /SA</p>
<p><img decoding="async" loading="lazy" alt="Creating Custom Action for driver installation in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_ca_install_drivers-07ed0c8a93-e2c0f08bee15f121f5ab7472700abe88.png" width="957" height="604" class="img_ev3q"></p>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="uninstall-custom-action">Uninstall Custom Action:<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#uninstall-custom-action" class="hash-link" aria-label="Direct link to Uninstall Custom Action:" title="Direct link to Uninstall Custom Action:" translate="no">​</a></h4>
<ol>
<li class="">
<p>Create a new Custom Action called CA_Uninstall_Driver</p>
</li>
<li class="">
<p>Choose type Exe in File table</p>
</li>
<li class="">
<p>As Execution Options select Deferred System</p>
</li>
<li class="">
<p>Return Processing – Synchronous, ignore exit code</p>
</li>
<li class="">
<p>Scheduling Options set for Always</p>
</li>
<li class="">
<p>Select DPInst.exe.exe file</p>
</li>
<li class="">
<p>In the command line section add this line: /u [#driverkey.inf] /d - replace file key for each driver file that you need to uninstall later. File keys can be found under File table. The file key is the first column of the file table called File.</p>
<p><img decoding="async" loading="lazy" alt="Creating Custom Action for driver uninstallation in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_ca_uninstall_drivers-c4670a6f0a-24690d2e3de76937c3bb996748e8fa1c.png" width="721" height="313" class="img_ev3q"></p>
</li>
</ol>
<blockquote>
<p><strong>Pro tip!</strong></p>
<p>To create Uninstall Custom Actions faster for each driver, open Table editor:</p>
<ol>
<li class="">Copy CA_Uninstall_Driver row and paste (Ctrl+Shift+C and Ctrl+Shift+C to copy whole row) new Custom actions as many as drivers we have</li>
<li class="">For each driver that needs uninstall, change the command line’s driver key <img decoding="async" loading="lazy" alt="Custom Action table in Table editor view in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_ca_tableeditor-5e109df70e-f005fc7e54805c88b8df916c6449f61a.png" width="672" height="386" class="img_ev3q"></li>
<li class="">To find driver file keys go to File table and click on sequence in descending order to see last added files <img decoding="async" loading="lazy" alt="enter image description here" src="https://blog.masterpackager.com/assets/images/drivers_file_keys-d59537315a-e73036730ebec9d9a561e2b7246247dc.png" width="671" height="101" class="img_ev3q"></li>
</ol>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-created-custom-actions-in-installexecutesequence">Add created Custom Actions in InstallExecuteSequence<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#add-created-custom-actions-in-installexecutesequence" class="hash-link" aria-label="Direct link to Add created Custom Actions in InstallExecuteSequence" title="Direct link to Add created Custom Actions in InstallExecuteSequence" translate="no">​</a></h2>
<p>In advanced editor locate InstallExecuteSequence.</p>
<p><img decoding="async" loading="lazy" alt="Setting Install Execute Sequence in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_instexeseq-8547755453-df67186191674d87de188a95c1bc2993.png" width="963" height="610" class="img_ev3q"></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-ca_install_drivers">Add CA_Install_Drivers:<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#add-ca_install_drivers" class="hash-link" aria-label="Direct link to Add CA_Install_Drivers:" title="Direct link to Add CA_Install_Drivers:" translate="no">​</a></h4>
<ol>
<li class="">
<p>Select Action Type - Custom Actions</p>
</li>
<li class="">
<p>Select Action Name – CA_Install_Drivers</p>
</li>
<li class="">
<p>Add Condition – During Installation</p>
</li>
<li class="">
<p>Set Sequence number – 6500. It must be somewhere between WriteRegistries and InstallFinalize actions</p>
</li>
<li class="">
<p>Add Custom Action to the Install Execute Sequence list.</p>
<p><img decoding="async" loading="lazy" alt="Setting Install Execute Sequence for Driver installation Custom Action in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_instexeseq_ca_install-b1e6245306-45c88efc38334e51a25db96b75606ca8.png" width="959" height="608" class="img_ev3q"></p>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-each-ca_uninstall_driver">Add each CA_Uninstall_Driver:<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#add-each-ca_uninstall_driver" class="hash-link" aria-label="Direct link to Add each CA_Uninstall_Driver:" title="Direct link to Add each CA_Uninstall_Driver:" translate="no">​</a></h4>
<ol>
<li class="">
<p>Select Action Type - Custom Actions</p>
</li>
<li class="">
<p>Select Action Name – CA_Uninstall_Driver</p>
</li>
<li class="">
<p>Add Condition – During Uninstallation</p>
</li>
<li class="">
<p>Set Sequence number – 3450. It must be somewhere before RemoveFiles and InstallFinalize actions</p>
</li>
<li class="">
<p>Add it to the Install Execute Sequence list</p>
</li>
<li class="">
<p>Repeat it to for each uninstall custom action</p>
<p><img decoding="async" loading="lazy" alt="Setting Install Execute Sequence for Driver uninstallation Custom Actions in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_instexeseq_ca_uninstall-a88d93200c-60c36bb770d47cfce71d9863d0f312fb.png" width="989" height="607" class="img_ev3q"></p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-create-a-template-for-future-use-in-master-packager">How to Create a Template for Future Use in Master Packager<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#how-to-create-a-template-for-future-use-in-master-packager" class="hash-link" aria-label="Direct link to How to Create a Template for Future Use in Master Packager" title="Direct link to How to Create a Template for Future Use in Master Packager" translate="no">​</a></h2>
<ol>
<li class="">Open MSI and go to the Custom Actions table</li>
<li class="">Select CA_Install_Drivers and CA_Uninstall_Driver rows</li>
<li class="">Right-click on one of the selected rows and press the “Add to Template” button <img decoding="async" loading="lazy" alt="Adding Custom Actions to Template in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_create_template-0eb5c637ca-a37b038a06e67696a6ed3792b62cff00.png" width="991" height="608" class="img_ev3q"></li>
<li class="">Create a new template name and press the arrow button in the left textbox <img decoding="async" loading="lazy" alt="Creating new template in Master Packager" src="https://blog.masterpackager.com/assets/images/drivers_add_to_template-74849e5205-1957cb116a8a0b20a24a5e043fafa600.png" width="990" height="610" class="img_ev3q"></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-pre-existing-template-to-your-master-packager">Add pre-existing template to your Master Packager<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#add-pre-existing-template-to-your-master-packager" class="hash-link" aria-label="Direct link to Add pre-existing template to your Master Packager" title="Direct link to Add pre-existing template to your Master Packager" translate="no">​</a></h3>
<p>To add a pre-existing template, locate the Master Packager folder in your User Profile’s <em>%appdata%</em> directory.</p>
<p><img decoding="async" loading="lazy" alt="Add pre-existing template to your Master Packager" src="https://blog.masterpackager.com/assets/images/add_template-623248a5e3-356f8443319e003c16f9d48828f05c4b.png" width="890" height="488" class="img_ev3q"></p>
<p>You can find your templates in there.</p>
<blockquote>
<p><strong>Note!</strong> The Template folder will only appear after you create a template in Master Packager.</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">Summary<a href="https://blog.masterpackager.com/how-to-install-drivers-silently-using-msi#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>Manually installing drivers for each user is time-consuming and inefficient. To install drivers silently, you should use DPInst.exe, Custom Actions and you might need a certificate for some drivers. Using templates in Master Packager allows you to speed up the process of adding custom actions to multiple MSI packages and reduce errors while creating them.</p>
<p><a href="https://www.masterpackager.com/uploads/file_archive/ca_install_drivers.zip" target="_blank" rel="noopener noreferrer" class="">Template for Custom Action to Install Drivers</a></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Improve MSI reliability with these MSI properties]]></title>
            <link>https://blog.masterpackager.com/improve-msi-reliability-with-these-msi-properties</link>
            <guid>https://blog.masterpackager.com/improve-msi-reliability-with-these-msi-properties</guid>
            <pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to apply recommended MSI properties, streamline packaging, and create deployment templates with Master Packager.]]></description>
            <content:encoded><![CDATA[<p>Learn how to apply recommended MSI properties using Master Packager, streamline your packaging process, and create templates for consistent and successful deployments across your organization.</p>
<!-- -->
<p>We will explain what the recommended properties are, how to apply them using Master Packager, and how to create a template for future use.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-are-msi-properties">What are MSI Properties?<a href="https://blog.masterpackager.com/improve-msi-reliability-with-these-msi-properties#what-are-msi-properties" class="hash-link" aria-label="Direct link to What are MSI Properties?" title="Direct link to What are MSI Properties?" translate="no">​</a></h2>
<p>Properties control how the MSI behaves during installation, modification, and uninstallation. These properties can define things like the product name, manufacturer, and installation behavior.</p>
<p><strong>Types of Properties:</strong></p>
<ul>
<li class="">Public Properties:<!-- -->
<ul>
<li class="">Must be in capital letters</li>
<li class="">Can be modified from the command line during installation</li>
</ul>
</li>
<li class="">Private Properties:<!-- -->
<ul>
<li class="">Typically, lowercase or mixed case</li>
<li class="">Cannot be changed from the command line</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-are-the-recommended-properties">What Are the recommended properties?<a href="https://blog.masterpackager.com/improve-msi-reliability-with-these-msi-properties#what-are-the-recommended-properties" class="hash-link" aria-label="Direct link to What Are the recommended properties?" title="Direct link to What Are the recommended properties?" translate="no">​</a></h2>
<p>These properties should be set in every package to ensure a more successful deployment.</p>
<p>Here are the recommended properties:</p>
<p><strong>ALLUSERS=1</strong></p>
<p>Installs the application for all users on the system. Typically, deployments happen from the SYSTEM account and not setting ALLUSERS to 1 can install the MSI only to the SYSTEM account. The user will not see the shortcuts for the application as they will be in the SYSTEM user profile.</p>
<p><strong>ARPNOMODIFY=1</strong></p>
<p>Removes the “Change” option in the Add/Remove Programs list. This ensures that the user cannot go to Add/Remove programs and modify the installation configuration with the “Change” button.</p>
<p><strong>ROOTDRIVE=C:\</strong></p>
<p>Ensures the application installs on the C: drive. If not set the installer sets ROOTDRIVE to the local drive that can be written to and having the most free space.</p>
<p><strong>LIMITUI=1</strong></p>
<p>Does not display any windows installer dialogs during installation, uninstallation and repair. This ensures that even if an MSI is installed with a double click, then the installation will require no interaction with the user.</p>
<p><strong>REBOOT=ReallySuppress</strong></p>
<p>Prevents forced reboots after installation. If this property is not set, the installer can force a reboot. PSADT can be used to inform the user if a reboot is necessary.</p>
<p><strong>MSIRESTARTMANAGERCONTROL=Disable</strong></p>
<p>Disables interaction with Restart Manager to avoid interruptions during installation. This property will mean that processes with files in use will not be shut down. For example, shell extension DLL files can be used by explorer.exe and windows installer will kill explorer.exe if this property is not set.</p>
<blockquote>
<p>When creating new MSI in Master Packager, Best Practice Properties are set by default.</p>
</blockquote>
<p>More information about MSI properties: <a href="https://learn.microsoft.com/en-us/windows/win32/msi/property-reference" target="_blank" rel="noopener noreferrer" class="">https://learn.microsoft.com/en-us/windows/win32/msi/property-reference</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-apply-best-practice-properties-using-master-packager">How to apply Best Practice Properties using Master Packager<a href="https://blog.masterpackager.com/improve-msi-reliability-with-these-msi-properties#how-to-apply-best-practice-properties-using-master-packager" class="hash-link" aria-label="Direct link to How to apply Best Practice Properties using Master Packager" title="Direct link to How to apply Best Practice Properties using Master Packager" translate="no">​</a></h2>
<p>Applying these properties in Master Packager is simple. Here’s how you do it:</p>
<ol>
<li class="">Open the MSI/MST file in Master Packager</li>
<li class="">Go to the Table Editor and open the Property table</li>
<li class="">Add missing Properties:<!-- -->
<ul>
<li class="">
<p>Right-click the Property table and select Add Row <img decoding="async" loading="lazy" alt="Manually adding property in Master Packagers table editor" src="https://blog.masterpackager.com/assets/images/mp_bpp_add_property_part1-7376581211-5d3d894b40c34e336f3dacd7287932c5.png" width="747" height="448" class="img_ev3q"></p>
</li>
<li class="">
<p>Enter the property name and value</p>
<p><img decoding="async" loading="lazy" alt="Manually adding property in Master Packagers table editor" src="https://blog.masterpackager.com/assets/images/mp_bpp_add_property_part2-4c7cadc952-202e8a1cb3a70aec4c1fa494c11d6dbd.png" width="378" height="191" class="img_ev3q"></p>
</li>
</ul>
</li>
<li class="">Edit an existing Property:<!-- -->
<ul>
<li class="">Find the property, double-click it, and update its value<img decoding="async" loading="lazy" alt="Editing property value in Master Packager" src="https://blog.masterpackager.com/assets/images/mp_bpp_edit_property-bb729e31c2-63631a5bc47a7b2d0c3a0c5b244d94ac.png" width="749" height="384" class="img_ev3q"></li>
</ul>
</li>
<li class="">Save the MSI/MST</li>
</ol>
<p>Once you’ve made the necessary changes, save the MSI/MST file to apply the changes.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-create-a-template-for-future-use-in-master-packager">How to create a Template for future use in Master Packager<a href="https://blog.masterpackager.com/improve-msi-reliability-with-these-msi-properties#how-to-create-a-template-for-future-use-in-master-packager" class="hash-link" aria-label="Direct link to How to create a Template for future use in Master Packager" title="Direct link to How to create a Template for future use in Master Packager" translate="no">​</a></h2>
<ol>
<li class="">Open MSI and go to the Property table</li>
<li class="">Select all Best Practice Property table rows – press ctrl and select properties</li>
<li class="">Right-click on one of the selected rows and press the “Add to Template” button <img decoding="async" loading="lazy" alt="Selecting multiple rows in Master Packagers table editor to create a Template" src="https://blog.masterpackager.com/assets/images/mp_bpp_selecting_multiple_rows_table_editor-8314cf21a0-b9af783685c85407abf4193398cdbc03.png" width="748" height="400" class="img_ev3q"></li>
<li class="">Create a new template name and press the arrow button in the left textbox<img decoding="async" loading="lazy" alt="Creating template for Master Packager" src="https://blog.masterpackager.com/assets/images/mp_bpp_creating_new_tamplate_part1-307f4372eb-eee21d60d48fcb9821eff415f6340e3f.png" width="747" height="381" class="img_ev3q"></li>
<li class="">Press Add to add selected properties to the newly created template<img decoding="async" loading="lazy" alt="Creating template for Master Packager" src="https://blog.masterpackager.com/assets/images/mp_bpp_creating_new_tamplate_part2-43d711a407-62c909f66bbf29777e9c569705147db1.png" width="746" height="383" class="img_ev3q"></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-apply-template">How to apply Template<a href="https://blog.masterpackager.com/improve-msi-reliability-with-these-msi-properties#how-to-apply-template" class="hash-link" aria-label="Direct link to How to apply Template" title="Direct link to How to apply Template" translate="no">​</a></h3>
<ol>
<li class="">Open MSI/MST you want to apply template to</li>
<li class="">In Advanced Editor go to Templates section</li>
<li class="">Select template and press “Apply Template”<img decoding="async" loading="lazy" alt="How to apply Template in Master Packager" src="https://blog.masterpackager.com/assets/images/mp_bpp_apply_template-c2e1140fd1-e2acb8abc9a61a13cf44dbb3fd9c31d8.png" width="748" height="383" class="img_ev3q"></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-pre-existing-template-to-your-master-packager">Add pre-existing template to your Master Packager<a href="https://blog.masterpackager.com/improve-msi-reliability-with-these-msi-properties#add-pre-existing-template-to-your-master-packager" class="hash-link" aria-label="Direct link to Add pre-existing template to your Master Packager" title="Direct link to Add pre-existing template to your Master Packager" translate="no">​</a></h3>
<p>To add a pre-existing template, locate the Master Packager folder in your User Profile’s <em>%appdata%</em> directory.</p>
<p><img decoding="async" loading="lazy" alt="Add pre-existing template to your Master Packager" src="https://blog.masterpackager.com/assets/images/add_template-623248a5e3-356f8443319e003c16f9d48828f05c4b.png" width="890" height="488" class="img_ev3q"></p>
<p>You can find your templates in there.</p>
<blockquote>
<p><strong>Note!</strong> The Template folder will only appear after you create a template in Master Packager.</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">Summary<a href="https://blog.masterpackager.com/improve-msi-reliability-with-these-msi-properties#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>Setting up best practice properties ensures MSI packages are successfully deployed. Using Master Packager’s templates allows you to apply these settings quickly across multiple packages, saving time and reducing the risk of errors.</p>
<p><a href="https://www.masterpackager.com/uploads/file_archive/best_practice_properties.zip" target="_blank" rel="noopener noreferrer" class="">Template for Recommended Properties</a></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Step-by-Step Packaging of an App Only Few Know How to: Arduino IDE 2.3.2]]></title>
            <link>https://blog.masterpackager.com/arduino-ide-2-3-2</link>
            <guid>https://blog.masterpackager.com/arduino-ide-2-3-2</guid>
            <pubDate>Mon, 26 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to package Arduino IDE 2 for enterprise deployment and solve challenges caused by poorly packaged apps.]]></description>
            <content:encoded><![CDATA[<p>It has come to our attention that many packagers have experienced issues with packaging Arduino IDE 2 so it can be deployed in an enterprise environment. To help the application packaging community learn how we package these complex (read: poorly packaged by vendor) applications we documented a step-by-step guide.</p>
<!-- -->
<p>It has come to our attention that many packagers have experienced issues with packaging Arduino IDE 2 so it can be deployed in an enterprise environment. To help the application packaging community learn how we package these complex (read: poorly packaged by vendor) applications we documented a step-by-step guide.</p>
<p>We’re working on new self-paced courses and to test how good they are we gave to test it to our new intern Signe. She knew nothing about app packaging. All she had was course recordings, Master Packager Pro, our guidance and app to package. A hard one. Perhaps too hard. However, this is all you need. This is what we want to show. The next guide is created by Signe and proofread/checked by Toms and Edijs. Enjoy and become a Master Packager faster.</p>
<p><strong>Application name:</strong> Arduino IDE 2.3.2</p>
<p><strong>Link to Arduino IDE MSI installer:</strong> <a href="https://www.arduino.cc/en/software" target="_blank" rel="noopener noreferrer" class="">https://www.arduino.cc/en/software</a></p>
<p><strong>Tools needed:</strong> Master Packager Pro (or any other repackaging software)</p>
<p>We are following our designed <a href="https://youtu.be/FgS14HNo6pI" target="_blank" rel="noopener noreferrer" class="">Master Packager Framework</a> that helps to package any application in a fast and high-quality way.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-we-will-show-in-this-guide">What we will show in this guide:<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#what-we-will-show-in-this-guide" class="hash-link" aria-label="Direct link to What we will show in this guide:" title="Direct link to What we will show in this guide:" translate="no">​</a></h2>
<ol>
<li class=""><strong>Evaluation process</strong> - Installing vendor MSI and monitoring installation process.</li>
<li class=""><strong>Summarizing problems</strong> - issues wrong with this application and its installer.</li>
<li class=""><strong>Packaging process</strong> - how to resolve these problems using Master Packager software.</li>
<li class=""><strong>Wrapping</strong> - how to create a PSAppDeployToolkit (PSADT) wrappers using Master Wrapper.</li>
<li class=""><strong>Testing</strong> - testing package using system account.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="evaluation">Evaluation<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#evaluation" class="hash-link" aria-label="Direct link to Evaluation" title="Direct link to Evaluation" translate="no">​</a></h2>
<ol>
<li class="">Open a clean virtual machine</li>
<li class="">Open Master Packager Toolbox</li>
<li class="">Install the Arduino IDE MSI on the virtual machine</li>
<li class="">After installation, check what apps were installed and the location of the installed files by using Master Packager Toolbox</li>
<li class="">Open the application to verify if there is any configuration that should be included in our package</li>
</ol>
<p>To see where the application is installed refresh Master Packager Toolbox by Right-Click -&gt; Refresh or pressing F5. Everything that was installed will be marked green. Everything that will be uninstalled will be marked red. This is excellent when doing app evaluation and testing.</p>
<p><img decoding="async" loading="lazy" alt="Master Packager Toolbox installed applications" src="https://blog.masterpackager.com/assets/images/arduino_1-7e56b0050e-3f833bbac738e5e6e5b325979d601505.png" width="1378" height="703" class="img_ev3q"></p>
<p>Click on the Arduino IDE app row to see more details about it.</p>
<p><img decoding="async" loading="lazy" alt="Master Packager Toolbox - app information" src="https://blog.masterpackager.com/assets/images/arduino_2-623583b3b4-aac1343ecb5633cebb2bdbb8d6c76840.png" width="1376" height="716" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="problems">Problems<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#problems" class="hash-link" aria-label="Direct link to Problems" title="Direct link to Problems" translate="no">​</a></h2>
<p>After evaluation of the installation, there are few problems that we encountered:</p>
<ol>
<li class="">
<p><strong>MSI creates desktop shortcut by default</strong>. The desktop is a user’s private space and in an enterprise deployment scenario desktop shortcuts should be removed.</p>
</li>
<li class="">
<p><strong>MSI installs files in a per user location</strong>. Enterprises want per-machine apps. Main reasons are better security and ease of deployment when apps are per-machine.</p>
</li>
<li class="">
<p><strong>Windows Defender Firewall displays two Windows Security Alerts</strong> when a user runs the application:</p>
<ul>
<li class="">Arduino IDE</li>
<li class="">Mdns-discovery</li>
</ul>
</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Windows Security Alert - Arduino IDE" src="https://blog.masterpackager.com/assets/images/arduino_3-89b69adbd1-ec72f47f655a95b021b5f658b5e9c9b8.png" width="532" height="388" class="img_ev3q"></p>
<ol start="4">
<li class="">
<p><strong>App requires the installation of several drivers</strong>, which also needs admin rights.</p>
<p><img decoding="async" loading="lazy" alt="Solving dpinst.exe installation window for Arduino IDE" src="https://blog.masterpackager.com/assets/images/arduino_4-c0321ff68f-fccd99dd4a5d27ef578fd9e40b904c3f.png" width="453" height="455" class="img_ev3q"></p>
</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Installing drivers for Arduino IDE" src="https://blog.masterpackager.com/assets/images/arduino_5-0cc6f284c4-7aef24f54c0c90c1a7578246cace1d06.png" width="716" height="344" class="img_ev3q"></p>
<ol start="5">
<li class=""><strong>During first launch the application downloads libraries</strong>.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Arduino first launch" src="https://blog.masterpackager.com/assets/images/arduinofirstlaunch-1ce1ea1d9e-45084982e24ff52fb7a0eb4515af60fe.png" width="1274" height="721" class="img_ev3q"></p>
<p>In an enterprise environment users do not have admin rights. At least they shouldn’t.</p>
<p>As you saw from firewall exception and driver installation popups they point to a per-user location – application checks if the library files are present in “%localappdata%\arduino15” location.</p>
<blockquote>
<p>Although the software is free to download it costs money. It costs time and money for every company in world to package it or better -&gt; re-doing the installer with hacks and tricks as you will see next.</p>
</blockquote>
<p>It’s clear that this application was created without considering enterprise requirements.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="packaging">Packaging<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#packaging" class="hash-link" aria-label="Direct link to Packaging" title="Direct link to Packaging" translate="no">​</a></h2>
<p>Now let’s resolve these problems one by one.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="removing-desktop-shortcut">Removing Desktop shortcut<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#removing-desktop-shortcut" class="hash-link" aria-label="Direct link to Removing Desktop shortcut" title="Direct link to Removing Desktop shortcut" translate="no">​</a></h3>
<p>Open the MSI using Master Packager and create a new Transform (MST) file. It is recommended to create MST file for every vendor MSI you want to package (modify) and deploy.</p>
<p><img decoding="async" loading="lazy" alt="Creating Transform file in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_6-8b82e88f62-bd409e35a3fa1109d81862b6542f8e2a.png" width="1546" height="816" class="img_ev3q"></p>
<p>Under the shortcuts section, select desktop shortcut, right click on it and remove it.</p>
<p><img decoding="async" loading="lazy" alt="Removing desktop shortcut in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_7-c65502d428-0fb9306f40f8a270c3b8c4c6133d0fe1.png" width="1248" height="615" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="set-msi-to-install-from-per-user-to-per-machine-location">Set MSI to install from per-user to per-machine location<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#set-msi-to-install-from-per-user-to-per-machine-location" class="hash-link" aria-label="Direct link to Set MSI to install from per-user to per-machine location" title="Direct link to Set MSI to install from per-user to per-machine location" translate="no">​</a></h3>
<p>On the left upper corner click on table icon to open Table Editor and locate Property table.</p>
<p>Then change ALLUSERS = 2 to 1 and MSIINSTALLPERUSER = 1 to 0. This will configure that installation will happen under [ProgramFiles] folder for all users.</p>
<p><img decoding="async" loading="lazy" alt="Set MSI to install from per-user to per-machine location" src="https://blog.masterpackager.com/assets/images/arduino_8-150140fb7b-4616a06d98f89b457259e733e7906da1.png" width="1077" height="613" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="improve-msi-reliability">Improve MSI reliability<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#improve-msi-reliability" class="hash-link" aria-label="Direct link to Improve MSI reliability" title="Direct link to Improve MSI reliability" translate="no">​</a></h3>
<p>Add a decade proven MSI properties that will improve MSI installation reliability.</p>
<p>Read about MSI reliability properties and how to apply them automatically for every package here: <a href="https://www.masterpackager.com/blog/improve-msi-reliability-with-these-msi-properties" target="_blank" rel="noopener noreferrer" class="">Improve MSI reliability with these MSI properties</a></p>
<p><img decoding="async" loading="lazy" alt="Improve MSI reliability using Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_9-2623da67fe-4f04cb129cdb964b3527751176ab08a9.png" width="667" height="443" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="install-drivers-and-include-the-libraries">Install drivers and include the libraries<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#install-drivers-and-include-the-libraries" class="hash-link" aria-label="Direct link to Install drivers and include the libraries" title="Direct link to Install drivers and include the libraries" translate="no">​</a></h3>
<p>To install drivers, it is usually required to have:</p>
<ul>
<li class="">Imported driver certificates</li>
<li class="">Dpinst.exe that will be used to silently install drivers</li>
<li class="">INF driver files</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="locate-drivers-and-registries-for-importing-driver-certificates">Locate drivers and registries for importing driver certificates<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#locate-drivers-and-registries-for-importing-driver-certificates" class="hash-link" aria-label="Direct link to Locate drivers and registries for importing driver certificates" title="Direct link to Locate drivers and registries for importing driver certificates" translate="no">​</a></h4>
<ol>
<li class="">
<p>Install Arduino original MSI on a clean virtual machine but do not open the Arduino app itself.</p>
</li>
<li class="">
<p>Open Master Repackager and create first snapshot.</p>
<p><img decoding="async" loading="lazy" alt="Creating first snapshot using Master Repackager" src="https://blog.masterpackager.com/assets/images/arduino_10-8ac34da3f8-7e9bd1357872ecdb404f594400bc615b.png" width="528" height="467" class="img_ev3q"></p>
</li>
<li class="">
<p>Now open Arduino application.</p>
</li>
<li class="">
<p>Install drivers and tick the checkbox to always trust publisher.</p>
<p><img decoding="async" loading="lazy" alt="Install drivers and tick the checkbox to always trust publisher" src="https://blog.masterpackager.com/assets/images/arduino_11-52cea96749-90f237685067878080c6f4d256d9196f.png" width="907" height="426" class="img_ev3q"></p>
</li>
<li class="">
<p>After all drivers are installed, in Master Repackager check the “I am done making system changes” and create a second snapshot.</p>
<p><img decoding="async" loading="lazy" alt="Saving system changes in Master Repackager" src="https://blog.masterpackager.com/assets/images/arduino_12-cc650f3725-8f45e648d7bc4972f38424e398882525.png" width="705" height="619" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Creating second snapshot in Master Repackager" src="https://blog.masterpackager.com/assets/images/arduino_12_2-db6c52587a-32209ca905e61bd4cbf8f748ca628251.png" width="705" height="619" class="img_ev3q"></p>
</li>
<li class="">
<p>In package cleanup phase click on “Manage Registries” and find registries under Trusted publishers.</p>
<p><img decoding="async" loading="lazy" alt="Master Repackager - manage registries" src="https://blog.masterpackager.com/assets/images/arduino_29_1-a4ba7953bd-d76a42320048db626dcbffe5f3a626f9.png" width="701" height="617" class="img_ev3q"></p>
<ul>
<li class="">Open them in RegEdit by right-click on the key name<img decoding="async" loading="lazy" alt="Viewing captured registries in Master Repackager" src="https://blog.masterpackager.com/assets/images/arduino_13-0d5489dad3-adc61703f1d219f1be315c4470564db2.png" width="604" height="458" class="img_ev3q"></li>
<li class="">Export all 4 registry key names under TrustedPublisher\Certificates.<img decoding="async" loading="lazy" alt="Exporting registries from Registry Editor" src="https://blog.masterpackager.com/assets/images/arduino_14-9eef1b3d6e-7a49163bba7a85a484194b94f0fa153d.png" width="714" height="415" class="img_ev3q"></li>
</ul>
</li>
<li class="">
<p>Locate dpinst-amd64.exe file and right click on it and go to file location. Make a copy of the file as it will be required later. Tip: You can use filter search on top right corner to find any file or registry faster.</p>
<p><img decoding="async" loading="lazy" alt="Locating dpinst-amd64.exe for Arduino IDE in Master Repackager" src="https://blog.masterpackager.com/assets/images/arduino_15-d3229b6451-9e34cca9d41d298bcfe9a47492513c2e.png" width="605" height="455" class="img_ev3q"></p>
</li>
<li class="">
<p>To find the installed drivers you will need to check the "C:\Windows\System32\DriverStore\FileRepository” folder.</p>
<p><img decoding="async" loading="lazy" alt="Locating installed drivers in Windows DriverStore for Arduino IDE" src="https://blog.masterpackager.com/assets/images/arduino_16-9b197ef99b-158039b63586a836c21262f1c28835c2.png" width="1079" height="443" class="img_ev3q"></p>
</li>
<li class="">
<p>Sort the folder by date modified and you should see 8 subfolders with inf in the name. Create a new folder called Drivers. Then go into each of the driver subfolders and copy its contents to the newly created Drivers folder. Copy dpinst-amd64.exe also in the Drivers folder. Your folder should look like this: <img decoding="async" loading="lazy" alt="Sorting Drivers for Arduino IDE" src="https://blog.masterpackager.com/assets/images/arduino_17-cb8976639a-dde0ab792759e40393e53edc415bd2e1.png" width="850" height="711" class="img_ev3q"></p>
</li>
<li class="">
<p>Create a new folder called Configuration and copy the Drivers folder inside it.</p>
<p><img decoding="async" loading="lazy" alt="Creating Configuration folder for Arduino IDE" src="https://blog.masterpackager.com/assets/images/arduino_configuration_drivers-2301e08d24-e28b476df44740124e404d840df7c3cc.png" width="733" height="259" class="img_ev3q"></p>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="include-downloaded-libraries">Include downloaded libraries<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#include-downloaded-libraries" class="hash-link" aria-label="Direct link to Include downloaded libraries" title="Direct link to Include downloaded libraries" translate="no">​</a></h4>
<ol start="11">
<li class="">The libraries must be present or Arduino will try to install the drivers again even if they are already installed. In the captured files of Master Repackager we can see that the application wrote to 4 per user locations:<!-- -->
<ul>
<li class="">“%AppData%\arduino-ide”</li>
<li class="">“%AppData%\Arduino IDE”</li>
<li class="">“%LocalAppData%\arduino15”</li>
<li class="">“%UserProfile%.arduinoIDE”</li>
</ul>
</li>
</ol>
<p><strong>How can we know which files should be included in the package?</strong></p>
<p>An easy way to do is to use elimination method. Rename one of the folders by adding “_backup” at the end of the folder name, then launch the app and check if the libraries are not downloaded again. Repeat this until the libraries start to install again when launching the app. This means that you have found which folder is required for the libraries to not install again. Using this method you can quickly find that only the “%LocalAppData%\arduino15” folder is required for the libraries to be installed.</p>
<ol start="12">
<li class="">The last step is to copy the “%LocalAppData%\arduino15” folder inside the Configuration folder that we created previously.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Adding libraries to Configuration folder" src="https://blog.masterpackager.com/assets/images/arduino_configuration_drivers_libraries-7efc13d6df-2d50b4581e3ab6ca8d244503edeb0cc7.png" width="733" height="259" class="img_ev3q"></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="install-drivers-with-msimst">Install drivers with MSI/MST<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#install-drivers-with-msimst" class="hash-link" aria-label="Direct link to Install drivers with MSI/MST" title="Direct link to Install drivers with MSI/MST" translate="no">​</a></h4>
<p>In the Master Packager Advanced Editor find Files section and right click the directory [ProgramFiles]\arduino-ide and select “Add Directory(s)” and browse for the Configuration folder and then press build now.</p>
<p><img decoding="async" loading="lazy" alt="Building CAB file in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_19-8f3d27ffaf-570c3c6468c5d61dfd0f89ac85466d2e.png" width="745" height="356" class="img_ev3q"></p>
<p>We will need to use predefined actions that will copy these files from the MSI to each user’s profile during system account installation that is used by most deployment systems.</p>
<p>To copy data to user profile we have created a predefined custom action called: “Copy to UserProfile”. It works amazingly. It copies files during system context installation to all user profiles. It also copies files to default profile so new user profiles can have the same configuration.</p>
<p>Under Custom Actions section, create a new Predefined action “Copy to UserProfile”. It will copy files to %localappdata% folder during the installation process.</p>
<p>Custom Actions → Edit → Predefined Actions → Add new Predefined Action → Copy to UserProfile</p>
<p><img decoding="async" loading="lazy" alt="Adding Custom Actions in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_20-d3722640e2-5320a003d5c08961e81d2265b2844201.png" width="1255" height="684" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Adding Predefined Action to copy to User Profile in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_21-9982d7faa9-d14886639d55f99d5b2e02d985a9f24c.png" width="694" height="406" class="img_ev3q"></p>
<p>As source select arduino15 folder which was added under the configuration folder. As destination path set “AppData\Local”.</p>
<p>A custom action will also be added to remove these files from the default user profile during uninstallation.</p>
<p><img decoding="async" loading="lazy" alt="Adding Predefined Action to delete from User Profile in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_22-1968a7312b-7e058144bef8565273da2bb9ea83c380.png" width="432" height="284" class="img_ev3q"></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="adding-certificate-registries">Adding certificate registries<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#adding-certificate-registries" class="hash-link" aria-label="Direct link to Adding certificate registries" title="Direct link to Adding certificate registries" translate="no">​</a></h4>
<p>For drivers to be installed silently we need to have the certificates imported to the Trusted Publishers store before driver installation.</p>
<p>In Advanced Editor locate Registries section → drag and drop previously exported registries.</p>
<p><img decoding="async" loading="lazy" alt="Adding certificate registries in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_23-e27533ab68-3d387b5bcf52e32306470fccf5891921.png" width="1128" height="550" class="img_ev3q"></p>
<h5 class="anchor anchorTargetStickyNavbar_Vzrq" id="creating-custom-action-to-install-drivers">Creating Custom action to install drivers<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#creating-custom-action-to-install-drivers" class="hash-link" aria-label="Direct link to Creating Custom action to install drivers" title="Direct link to Creating Custom action to install drivers" translate="no">​</a></h5>
<ol>
<li class="">Under Custom Actions → Edit → Custom actions Create new Custom action create new custom action called CA_Install_Drivers.</li>
<li class="">Choose type Exe in File table</li>
<li class="">As Execution Options select Deferred System</li>
<li class="">Return Processing – Synchronous, ignore exit code – this will indicate that at installation process it would ignore exit code</li>
<li class="">Scheduling Options set for Always</li>
<li class="">Select dpinst-amd64.exe that we added previously – dpinstamd64.exe</li>
<li class="">In command line section add this line: /Q /F /LM /SA</li>
</ol>
<p>Custom Action should look like this:</p>
<p><img decoding="async" loading="lazy" alt="Creating Custom action to install drivers in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_24-12ad6db202-a2c7740cf5fd943ff867a287de910227.png" width="423" height="330" class="img_ev3q"></p>
<p>After we need to add uninstall Custom Actions for each driver:</p>
<ol>
<li class="">Create a new Custom Action called CA_Uninstall_Driver</li>
<li class="">Choose type Exe in File table</li>
<li class="">As Execution Options select Deferred System</li>
<li class="">Return Processing – Synchronous, ignore exit code</li>
<li class="">Scheduling Options set for Always</li>
<li class="">Select dpinst-amd64.exe file in the Drivers folder</li>
<li class="">In command line section add this line: /u “[#AdafruitCircutPlayground.inf]” /d /q</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Creating Custom action to uninstall drivers in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_driver_uninstall_9-d21bf40288-8726234d8ebc258e3da4b48d71c0c3de.png" width="428" height="327" class="img_ev3q"></p>
<p>To create Uninstall Custom Actions faster for each driver, open Table editor.</p>
<p><img decoding="async" loading="lazy" alt="Create Uninstall Custom Actions faster for drivers in Master Packager&amp;#39;s Table editor" src="https://blog.masterpackager.com/assets/images/arduino_driver_uninstall_8-95eeb8fec4-034e867c3828a7bb170190c5d28af581.png" width="1053" height="496" class="img_ev3q"></p>
<p>Copy CA_Uninstall_Driver row and paste (Ctrl+Shift+C and Ctrl+Shift+C to copy whole row) new Custom actions as many as drivers we have and change the file key in the Target column for each corresponding INF file key.</p>
<p><img decoding="async" loading="lazy" alt="Multiplying Custom Actions in Master Packager&amp;#39;s Table editor" src="https://blog.masterpackager.com/assets/images/arduino_driver_uninstall_7-2c54433ba6-c48877c6db946b8a395e6a866d5ae87a.png" width="1053" height="384" class="img_ev3q"></p>
<p>To find file keys go to File table and click on sequence in descending order to see last added files. Or you can use filter in the top corner and type “.inf” to filter out all INF files.</p>
<h5 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-created-driver-custom-actions-in-installexecutesequence">Add created Driver Custom Actions in InstallExecuteSequence<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#add-created-driver-custom-actions-in-installexecutesequence" class="hash-link" aria-label="Direct link to Add created Driver Custom Actions in InstallExecuteSequence" title="Direct link to Add created Driver Custom Actions in InstallExecuteSequence" translate="no">​</a></h5>
<p>To run each created Custom Action in correct timing we need to add them in InstallExecuteSeqeuence table.</p>
<p>In advanced editor locate InstallExecuteSequence → Edit</p>
<p><img decoding="async" loading="lazy" alt="Adding Custom Actions to InstallExecuteSequence in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_28-551c522ee9-43f2c40d47f69983622ec1e43000a315.png" width="1145" height="488" class="img_ev3q"></p>
<p>First add CA_Install_Drivers:</p>
<ol>
<li class="">Select Action Type - Custom Actions</li>
<li class="">Select Action Name – CA_Install_Drivers</li>
<li class="">Add Condition – During Installation</li>
<li class="">Set Sequence number – 6500</li>
<li class="">Add it to the Install Execute Sequence list</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Adding Driver Installation Custom Action to InstallExecuteSequence in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_29-f39f787a59-d9f9a246044aa7b8d3b1be555bbafdb8.png" width="1057" height="669" class="img_ev3q"></p>
<p>Then add each CA_Uninstall_Driver:</p>
<ol start="6">
<li class="">Select Action Type - Custom Actions</li>
<li class="">Select Action Name – CA_Uninstall_Driver</li>
<li class="">Add Condition – During Installation</li>
<li class="">Set Sequence number – 3450 (+1 for each uninstall custom action. The sequence number should not be the same for any other action)</li>
<li class="">Add it to the Install Execute Sequence list</li>
<li class="">Repeat it to for each uninstall custom action</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Adding Driver Uninstallation Custom Actions to InstallExecuteSequence in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_30-ba2b36f10d-10b4c3d533f1da018baa5ec03446f203.png" width="1126" height="650" class="img_ev3q"></p>
<p><em><strong>Note!</strong> It’s important where each type of Custom Action is placed in the Install Execute Sequence list - CA_Install_Drivers should be place after WriteRegistries (otherwise the drivers will try to install before the certificates are installed) and CA_Uninstall_Driver before RemoveFiles action. Also, they should be placed before InstallFinalize Action.</em></p>
<blockquote>
<p><strong>Pro tip!</strong> This was a lot of work to install drivers. We don’t like a lot of work like that. After some time, it is hard to remember how to do it again or can introduce typo mistakes. Therefore you can create a template for driver installation using Master Packager Templates feature. Read more about how to do it <a href="https://www.masterpackager.com/blog/how-to-install-drivers-silently-using-msi" target="_blank" rel="noopener noreferrer" class="">here</a>.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="firewall-exceptions">Firewall exceptions<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#firewall-exceptions" class="hash-link" aria-label="Direct link to Firewall exceptions" title="Direct link to Firewall exceptions" translate="no">​</a></h3>
<p>To create a firewall exception, add a new Predefined Action.</p>
<ol>
<li class="">
<p>Open Control Panel → System and Security → Windows Defender Firewall and locate Advanced Settings</p>
<p><img decoding="async" loading="lazy" alt="Windows Defender Firewall" src="https://blog.masterpackager.com/assets/images/arduino_31-5de9fa7c90-17397259e5ae2471da86122daaef4401.png" width="784" height="635" class="img_ev3q"></p>
</li>
<li class="">
<p>Under Inbound Rules is shown information about both needed Firewall Exceptions –for arduino ide.exe and mdns – discovery.exe</p>
<p><img decoding="async" loading="lazy" alt="Windows Defender Firewalls Advanced Settings" src="https://blog.masterpackager.com/assets/images/arduino_32-95c3ece195-71341ecf7349f0500a4e76097351acea.png" width="1857" height="222" class="img_ev3q"></p>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="arduino-ideexe-firewall-exception">Arduino ide.exe firewall exception<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#arduino-ideexe-firewall-exception" class="hash-link" aria-label="Direct link to Arduino ide.exe firewall exception" title="Direct link to Arduino ide.exe firewall exception" translate="no">​</a></h4>
<p>Under Custom Actions add new Predefined Action:</p>
<ol>
<li class="">Select “Add Firewall Exception”</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Custom Action &amp;quot;Add Firewall Exception&amp;quot; in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_33-5be6df266f-5faf9d77cddbfc4c4eef1cbc08355ed8.png" width="453" height="521" class="img_ev3q"></p>
<ol start="3">
<li class="">
<p>Set Exception name exact the same as it was by default - arduino ide.exe</p>
</li>
<li class="">
<p>Under Path select the exe file</p>
</li>
<li class="">
<p>Leave Bound, Profiles and Protocol with their default values</p>
<p><img decoding="async" loading="lazy" alt="Adding Custom Action &amp;quot;Add Firewall Exception&amp;quot; for Arduino IDE.exe in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_34-714035527b-c3d000d1c79da59a6437935aaa16df53.png" width="1109" height="447" class="img_ev3q"></p>
</li>
<li class="">
<p>Set the same Exception Name also to Remove firewall exception.</p>
<p><img decoding="async" loading="lazy" alt="Adding Custom Action &amp;quot;Remove Firewall Exception&amp;quot; for Arduino IDE.exe in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_35-d6737e3021-ba1f70e07fd0ca5236c43ef45e73cf17.png" width="684" height="219" class="img_ev3q"></p>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="mdns-discovery-firewall-exception">Mdns-discovery firewall exception<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#mdns-discovery-firewall-exception" class="hash-link" aria-label="Direct link to Mdns-discovery firewall exception" title="Direct link to Mdns-discovery firewall exception" translate="no">​</a></h4>
<p>Create a second firewall exception for mdns-discovery using Predefined Actions.</p>
<ol>
<li class="">
<p>Select “Add Firewall Exception”</p>
</li>
<li class="">
<p>Set Exception name exact the same as it was by default - mdns-discovery.exe</p>
</li>
<li class="">
<p>Under Path set location same as default to LocalAppData Folder:</p>
<ul>
<li class="">[LocalAppDataFolder]arduino15\packages\builtin\tools\mdns-discovery\1.0.9\mdns-discovery.exe</li>
</ul>
</li>
<li class="">
<p>Leave Bound, Profiles and Protocol with their default values.</p>
<p><img decoding="async" loading="lazy" alt="Adding Custom Action &amp;quot;Add Firewall Exception&amp;quot; for mdns-discovery.exe in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_36-1d458dd5e6-934807e3f58c78e543a0cb265ab84cf6.png" width="672" height="330" class="img_ev3q"></p>
</li>
<li class="">
<p>Set the same Exception Name also to Remove firewall exception (1).</p>
</li>
</ol>
<p>For this firewall exception to work, we need to set up few more things:</p>
<ul>
<li class="">
<p>Change install execute sequence condition to during repair for AddFirewallException and SetFirewallException</p>
</li>
<li class="">
<p>Ensure that the MSI has an advertised shortcut, to trigger self-repair mechanism</p>
<p>-Check for DISABLEADVERTISESHORTCUTS entry in property table. If it exists, remove it to enable advertised shortcuts.</p>
</li>
<li class="">
<p>To activate the self-repair mechanism, create a new registry entry under HKEY_CURRENT_USER\Software</p>
</li>
</ul>
<h5 class="anchor anchorTargetStickyNavbar_Vzrq" id="change-custom-action-condition-to-only-be-executed-during-repair-for-mp_addfirewallexception1-and-mp_setaddfirewallexception1">Change custom action condition to only be executed during repair for MP_AddFirewallException1 and MP_SetAddFirewallException1<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#change-custom-action-condition-to-only-be-executed-during-repair-for-mp_addfirewallexception1-and-mp_setaddfirewallexception1" class="hash-link" aria-label="Direct link to Change custom action condition to only be executed during repair for MP_AddFirewallException1 and MP_SetAddFirewallException1" title="Direct link to Change custom action condition to only be executed during repair for MP_AddFirewallException1 and MP_SetAddFirewallException1" translate="no">​</a></h5>
<p>Because Mdns-discovery exe is in user data and system account installation cannot see that location for all users, we need apply this exception during repair.</p>
<ol>
<li class="">
<p>In Advanced Editor go to Install Execute Sequence → Edit</p>
</li>
<li class="">
<p>Locate MP_AddFirewallException1 that we created for mdns-discovery</p>
</li>
<li class="">
<p>Change Condition to During repair</p>
</li>
<li class="">
<p>Do the same for MP_SetAddFirewallException1</p>
<p><img decoding="async" loading="lazy" alt="Changing custom action condition to only be executed during repair" src="https://blog.masterpackager.com/assets/images/arduino_37-fcbcc50259-90f12bfac6211043a27666cde360920a.png" width="1133" height="575" class="img_ev3q"></p>
</li>
</ol>
<h5 class="anchor anchorTargetStickyNavbar_Vzrq" id="remove-disableadvertiseshortcuts-entry-from-property-table">Remove DISABLEADVERTISESHORTCUTS entry from property table<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#remove-disableadvertiseshortcuts-entry-from-property-table" class="hash-link" aria-label="Direct link to Remove DISABLEADVERTISESHORTCUTS entry from property table" title="Direct link to Remove DISABLEADVERTISESHORTCUTS entry from property table" translate="no">​</a></h5>
<ol>
<li class="">In table editor locate property table</li>
<li class="">Select DISABLEADVERTISESHORTCUTS entry</li>
<li class="">Right click on it and delete it</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Removing DISABLEADVERTISESHORTCUTS entry from property table in Master packager" src="https://blog.masterpackager.com/assets/images/arduino_38-8aabdde39e-b4c896e8f5ad4228ca1e42b0338403a4.png" width="1136" height="578" class="img_ev3q"></p>
<h5 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-a-new-registry-entry-under-hkey_current_usersoftware">Create a new registry entry under HKEY_CURRENT_USER\Software<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#create-a-new-registry-entry-under-hkey_current_usersoftware" class="hash-link" aria-label="Direct link to Create a new registry entry under HKEY_CURRENT_USER\Software" title="Direct link to Create a new registry entry under HKEY_CURRENT_USER\Software" translate="no">​</a></h5>
<ol>
<li class="">
<p>Under Register section in Advanced editor in HKEY_CURRENT_USER create a new HKCU registry Software[ProductName]. It will automatically create a corresponding component.</p>
<p><img decoding="async" loading="lazy" alt="Creating a new registry entry under HKEY_CURRENT_USER\Software in Master Packager" src="https://blog.masterpackager.com/assets/images/arduino_39-1ba437937d-5c9aeceac1b8e3aef65a2424a87f4b9d.png" width="852" height="342" class="img_ev3q"></p>
</li>
<li class="">
<p>Open newly added registry in Table editor</p>
</li>
<li class="">
<p>Locate the corresponding component in Relationships → and double click on it</p>
<p><img decoding="async" loading="lazy" alt="Locating the corresponding component in Master Packager Table editor " src="https://blog.masterpackager.com/assets/images/arduino_40-c6effee006-a885a855a4d2961aca1d3576ffb0ebf5.png" width="849" height="439" class="img_ev3q"></p>
</li>
<li class="">
<p>Set keypath to newly created registry key (in this case Reg_7 – Software[ProductName]) and set the Component Attributes to Registry KeyPath. This will enable Advertised Shortcut to activate MSI self-heal and register Firewall via Custom Action as in this situation Custom Action will be able to see user data path.</p>
</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Setting components attribute in Master Packager&amp;#39;s Table editor" src="https://blog.masterpackager.com/assets/images/arduino_42-a09b5a787a-9682a2a6aace6643d1590601840a4b79.png" width="1117" height="447" class="img_ev3q"> <img decoding="async" loading="lazy" alt="Setting keypath to newly created registry key in Master Packager&amp;#39;s table editor" src="https://blog.masterpackager.com/assets/images/arduino_41-3f116f65eb-173a1811bd45b042b6378ecc0aa0cd25.png" width="848" height="111" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="wrapping">Wrapping<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#wrapping" class="hash-link" aria-label="Direct link to Wrapping" title="Direct link to Wrapping" translate="no">​</a></h2>
<p>After all the changes in the MST are done, it’s time to wrap this package into PSADT. Master Wrapper is the fastest and safest way to create a PSAppDeployToolkit (PSADT) wrappers.</p>
<ol>
<li class="">
<p>Open Master Wrapper and create a new Project<img decoding="async" loading="lazy" alt="Master Wrapper - Start wrapping into PSADT now" src="https://blog.masterpackager.com/assets/images/arduino_43-a426010ed3-fa7fe7f2215ce6d1c1d833c4523ee4a9.png" width="1061" height="734" class="img_ev3q"></p>
</li>
<li class="">
<p>Change General information about application by loading data from the MST or just dragging and dropping the MST file into the Master Wrapper.</p>
</li>
<li class="">
<p>In the Main actions, Master Wrapper auto-generates Install, Uninstall and Repair command lines<img decoding="async" loading="lazy" alt="Master Wrapper - Main actions " src="https://blog.masterpackager.com/assets/images/arduino_45-6bdad023c7-7347771b454d18c2e61701745c8f50d2.png" width="1062" height="732" class="img_ev3q"></p>
</li>
<li class="">
<p>In Pre-actions section set all the information you want to show at installation. If you use MSI/MST then it also finds and sets all the processes to be closed for upgrade. In our case if Arduino IDE is open on user end it will ask to close the application using PSADT functionality.<img decoding="async" loading="lazy" alt="Master Wrapper - Pre-actions" src="https://blog.masterpackager.com/assets/images/arduino_46-a4b697970e-2b24097ea6a6ca1c46bead69ccad7bcd.png" width="1063" height="734" class="img_ev3q"></p>
</li>
<li class="">
<p>At post-installation you can set request to restart if needed, set force restart after a certain period or you can show custom message that you want show to the user.</p>
</li>
<li class="">
<p>Next step – at the script editor we need to add two lines:</p>
<ul>
<li class="">Copy-ContentToCache function:<!-- -->
<ul>
<li class=""><code>Copy-ContentToCache</code></li>
</ul>
</li>
<li class="">Remove-File function:<!-- -->
<ul>
<li class="">
<p><code>Remove-File -Path “$configToolkitCachePath$installName” -Recurse -ContinueOnError $true</code></p>
<p><img decoding="async" loading="lazy" alt="Master Wrapper - Script editor " src="https://blog.masterpackager.com/assets/images/arduino_47-89e8a85cb5-58c2d00e4e7c4c67a253ba3adc6b7dc5.png" width="1062" height="734" class="img_ev3q"></p>
</li>
</ul>
</li>
</ul>
</li>
</ol>
<p>Copy-ContentToCache function copies the toolkit files to a local cache folder. It’s necessary for the repair to work because Intune deletes the installation folder after the installation is complete.</p>
<p><img decoding="async" loading="lazy" alt="Master Wrapper - Script editor" src="https://blog.masterpackager.com/assets/images/arduino_48-f909d3e9eb-fbe8d0e9b448e9865e95902d73db6485.png" width="1065" height="735" class="img_ev3q"></p>
<p>Remove-File function will ensure that the cached folder is removed during uninstallation.</p>
<ol start="7">
<li class="">Save the package</li>
<li class="">After saving, Master wrapper will suggest opening the Files folder in newly created package. Drag and Drop created MSI, MST and cab file into it.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Saving package in Master Wrapper" src="https://blog.masterpackager.com/assets/images/arduino_49-b635d5a05f-5c348f72ffd01eae0ac84735f8057dee.png" width="1065" height="735" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Creating Arduino IDE PSADT package" src="https://blog.masterpackager.com/assets/images/arduino_50-d142a869b0-fc7533f64962fd9eff4bf2ab261b71c1.png" width="1066" height="359" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="testing-installation">Testing installation<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#testing-installation" class="hash-link" aria-label="Direct link to Testing installation" title="Direct link to Testing installation" translate="no">​</a></h3>
<p>To test if the application is packaged and wrapped correctly you need to do installation through system account. To do this, you need to use PsExec.</p>
<p><img decoding="async" loading="lazy" alt="Testing Arduino IDE PSADT package" src="https://blog.masterpackager.com/assets/images/arduino_51-2e463af35b-bf7f56b4ccaca20a7b90b55f030b17bc.png" width="871" height="731" class="img_ev3q"></p>
<ol>
<li class="">Open CMD as administrator</li>
<li class="">Add the command line and run the installation:<!-- -->
<ul>
<li class="">
<p><code>&lt;path to PsExec&gt;” /si “&lt;path to Deploy-Application.exe&gt;</code></p>
<p><img decoding="async" loading="lazy" alt="Testing wrapped application using PsExec and cmd" src="https://blog.masterpackager.com/assets/images/arduino_52-4e47859f37-f6be45e46635a5e469eccbe72322ad0c.png" width="879" height="462" class="img_ev3q"></p>
</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://blog.masterpackager.com/arduino-ide-2-3-2#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>Arduino IDE 2.3.2 is not suitable for deployment in enterprise environments. This means that you need special skills to package it. Fortunately, we’re here to help you become a Master Packager. For Master Packager Pro customers this is not a problem as:</p>
<ul>
<li class="">They have Master Packager Pro software to handle any app</li>
<li class="">Discord community to ask for help</li>
</ul>
<p><a href="https://www.masterpackager.com/pricing#MasterPackager" target="_blank" rel="noopener noreferrer" class=""><strong>Get Master Packager Pro</strong></a></p>
<p>Self-paced courses are coming soon so you can package with confidence on your own. Subscribe to our <a href="https://www.masterpackager.com/newsletter" target="_blank" rel="noopener noreferrer" class="">newsletter</a> to learn when they are available.</p>
<p>Have an easy package!</p>
<p>The Master Packager Team</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Master Packager 24.6.8979 release highlights]]></title>
            <link>https://blog.masterpackager.com/24.6.8979-release-highlights</link>
            <guid>https://blog.masterpackager.com/24.6.8979-release-highlights</guid>
            <pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[For this release, our main goal was to make everyone a Master Packager when writing custom PSAppDeployToolkit scripts.]]></description>
            <content:encoded><![CDATA[<p>For this release, our main goal was to make everyone a Master Packager when writing custom PSAppDeployToolkit scripts.</p>
<!-- -->
<p>For this release, our main goal was to enable you to become a Master Packager when writing custom PSAppDeployToolkit (#PSADT) scripts.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="this-version-will-help-you">This version will help you:<a href="https://blog.masterpackager.com/24.6.8979-release-highlights#this-version-will-help-you" class="hash-link" aria-label="Direct link to This version will help you:" title="Direct link to This version will help you:" translate="no">​</a></h3>
<ul>
<li class="">Avoid the frustration of searching for scripts in old packages/notes</li>
<li class="">Save time applying custom scripts</li>
<li class="">Improve onboarding of new packagers</li>
<li class="">Standardize your packaging process across the organization</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="we-wanted-to-stop">We wanted to stop:<a href="https://blog.masterpackager.com/24.6.8979-release-highlights#we-wanted-to-stop" class="hash-link" aria-label="Direct link to We wanted to stop:" title="Direct link to We wanted to stop:" translate="no">​</a></h3>
<ul>
<li class="">Spending time installing and opening third-party tools like Visual Studio Code to edit PSADT scripts.</li>
<li class="">Searching for PSADT functions and examples in the documentation.</li>
<li class="">Saving and copy/paste pre-made custom scripts from Sticky Notes.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="this-is-how-we-made-that-happen">This is how we made that happen:<a href="https://blog.masterpackager.com/24.6.8979-release-highlights#this-is-how-we-made-that-happen" class="hash-link" aria-label="Direct link to This is how we made that happen:" title="Direct link to This is how we made that happen:" translate="no">​</a></h3>
<ol>
<li class="">
<p>We integrated IntelliSense into the Master Wrapper Script Editor. A powerful tool that is available in Visual Studio Code.</p>
</li>
<li class="">
<p>Then we loaded AppDeployToolkitMain.ps1 and AppDeployToolkitExtensions.ps1 files.</p>
</li>
<li class="">
<p>After that, we created the Master Wrapper Script Explorer.</p>
<p>Currently, it supports our built-in and custom snippets. It allows you to save parts of code and then easily access them from the script editor. This is a game changer for making application packaging efficient—everything is in one application.</p>
</li>
</ol>
<p>Here is an example of how you can add your custom scripts to snippets and then load them from the Script editor.</p>
<p><img decoding="async" loading="lazy" alt="Example of how you can add your custom scripts to snippets and then load them from the Script editor." src="https://blog.masterpackager.com/assets/images/masterwrapper2024_add_custom_scripts-f21ed65175-3483d3ad92062772133799c8d5747a7b.gif" width="1409" height="898" class="img_ev3q"></p>
<p>IntelliSense and Script Explorer features are available to Pro license users. Help us help you become a Master Packager by <a href="https://www.masterpackager.com/pricing#MasterPackager" target="_blank" rel="noopener noreferrer" class="">purchasing the Pro license</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="next">Next<a href="https://blog.masterpackager.com/24.6.8979-release-highlights#next" class="hash-link" aria-label="Direct link to Next" title="Direct link to Next" translate="no">​</a></h3>
<p>We’re working to solve one of the biggest packaging challenges: upgrading previous application versions. You’ll be able to create an upgrade with just a few clicks—no scripting, no Intune Supersedence. Everything will be standardized across your packaging team and organization.</p>
<p><strong>Full release notes</strong> are here:</p>
<p><a href="https://www.masterpackager.com/support/release-notes" target="_blank" rel="noopener noreferrer" class="">https://www.masterpackager.com/support/release-notes</a></p>
<p>Download <strong>Master Packager Community</strong> or purchase <strong>Master Packager Pro</strong> here:</p>
<p><a href="https://www.masterpackager.com/download" target="_blank" rel="noopener noreferrer" class="">https://www.masterpackager.com/download</a></p>]]></content:encoded>
        </item>
    </channel>
</rss>