Toms Knostenbergs
April 16, 2025

Add These 17 Lines and Your App Will Auto-Update

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?

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.

1. Lack of knowledge

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.

2. Complicated systems

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”.

3. Expensive solutions

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.

How we solve these problems?

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.

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.

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.

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.

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.

    "updater": {
      "serviceName": "MasterPackager.Updater",
      "serviceDisplayName": "Master Packager Updater",
      "latestVersionDescriptor": {
        "url": "https://www.masterpackager.com/api/latest-version/mp",
        "installerUrlMatcher": "(?<=\"URL\":\")[^\"]+",
        "versionMatcher": "(?<=\"Version\":\")[^\"]+",
        "checkSumMatcher": "(?<=\"SHA256\":\")[^\"]+"
      },
      "scheduling": {
        "enabled": false
      },
      "notifications": {
        "enabled": true,
        "triggers": [ 
	        "MasterPackager", 
	        "MasterRepackager", 
	        "MasterWrapper", 
	        "MasterPackager.Toolbox" ]
      }
    }
  • serviceName - Name of your update service.
  • serviceDisplayName - Display name of your update service.
  • latestVersionDescriptor - Describes retrieval and parsing of the latest available version metadata.
  • url - 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.
  • installerUrlMatcher - RegEx pattern to read the URL from which to download the latest installer file.
  • versionMatcher - RegEx pattern to read the latest version that will be compared with the currently installed version.
  • checkSumMatcher - RegEx pattern to read the SHA256 checksum that will be compared with the checksum of the downloaded file.
  • scheduling - Enable or disable silent automatic updates that happen in the background while the app is not running.
  • notifications - Enable or disable update notifications for the application which show up when specified processes are running.
  • triggers - Application process names that trigger an update notification upon application launch.

Notification when launching the app and there is a newer version available.
Notification when launching the app and there is a newer version available.

Installation progress bar.
Installation progress bar.

Close conflicting processes view.
Close conflicting processes view.

Updates finished successfully.
Updates finished successfully.

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.

Master Packager Dev and the auto-update feature are FREE if you use the application as a non-commercial product.
299 EUR/yearly for small and medium organizations.
999 EUR/yearly for larger enterprises.
Per organization.
For unlimited users and machines.
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.

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 Master Packager Dev.

If you need help, let us know and we will help you build installers for your apps: [email protected]

Application packaging shouldn’t be hard and expensive.
The Master Packager Team