Packaging and deploying applications with Patch My PC Cloud
A practical guide to Custom Apps for Microsoft Intune. How to take a raw installer and ship it as a managed app, with no manual Intune packaging step.
What Custom Apps does
Custom Apps lets you package your own or in-house software and publish it to Microsoft Intune straight from the Patch My PC Cloud portal.
You upload the raw installer. Patch My PC wraps the content into the Win32 .intunewin format and uploads it to Intune for you. You never run the Microsoft Win32 Content Prep Tool (IntuneWinAppUtil.exe) by hand, and you never upload a package to Intune manually.
What this replaces
| Manual Intune method | Patch My PC Custom Apps |
|---|---|
Run IntuneWinAppUtil.exe to build a .intunewin | Upload the raw installer, packaging is automatic |
| Write install and uninstall commands by hand | Auto filled for MSI, guided for EXE and script |
| Build and test detection rules yourself | Default detection script provided and recommended |
| Upload and configure the app in the Intune console | Published to Intune from the Patch My PC portal |
| Repeat the whole process for every new version | Add Version, the rest carries over |
Catalog apps vs Custom Apps
Patch My PC has two ways to deliver software. Pick the right one before you build anything.
App Catalog
Over a thousand common third party apps that Patch My PC packages, tests, and keeps current for you. You enable the app and set assignments. Patch My PC handles new versions automatically.
Use when the app is a public product such as Chrome, Zoom, or 7-Zip.
Custom Apps
Your own or in-house software that is not in the catalog. You provide the installer and metadata. Patch My PC packages and publishes it. You own the version updates through Add Version.
Use when the app is line of business, internally built, or a public app with bespoke configuration.
Before you start
Requirements
- An Enterprise Plus, Enterprise Premium, or MSP Patch My PC subscription.
- Your company is onboarded to Patch My PC Cloud and set up.
- An Intune connection configured if you publish to Intune from the Cloud, or also deploy catalog apps.
- The on premises Publisher is only needed if you publish Custom Apps through it. Version 2.1.20.0 or later is required in that case. Cloud to Intune does not need the Publisher.
What to gather for each app
| Item | Why it matters |
|---|---|
| The installer file (MSI or EXE) or an install script | This is the primary install file Patch My PC packages |
| Silent install command | So the app installs with no user prompts |
| Apps & Features (ARP) display name and version | Drives reliable detection after install |
| A 512 x 512 px icon (PNG, JPG, or BMP) | Shows in the Company Portal for end users |
| Any extra files or folders the installer needs | Uploaded alongside the primary installer |
Choose your installer type
How much work the wizard does for you depends on what you feed it. This single choice drives the rest of the build.
Step by step: create a Custom App
Sign in to portal.patchmypc.com, open the App Catalog, and click Add App. The Custom Apps Deployment Wizard opens. It has five tabs.
- File tab: upload the installer
Click Add Primary Install File and select your MSI or EXE, or choose an installer script. The file hash is calculated as it uploads. Add any extra files or folders the installer needs, then click Next.
Important If you add PSADT scripts, the target devices need .NET 4.7.2 installed.
- General Information tab: describe the app Set the icon (512 x 512 px), App name, Vendor, Description, and Internal Notes. Write the App name exactly as it should read in the Company Portal, and keep it unique. If two apps share a name, only one shows in the Company Portal. Click Next.
- Configuration tab: how it installs Set Install Context (System or User), Architecture, Version, Apps & Features name, Language, Conflicting Processes, Silent Install parameters, and the Uninstall command. For an MSI most of this is filled for you. Add Information and Privacy URLs. Click Next.
- Detection Rules tab: prove it installed Leave Patch My PC Default (Recommended) selected unless you have a reason not to. It checks the uninstall registry for your app name and a version equal to or greater than the one you set. Click Next.
- Summary tab: review and create Check every value. Use Prev to fix anything. When correct, click Create. The app appears in your App Catalog ready to deploy.
MSI easiest
This is the everyday case. Say you have AcmeAgent.msi.
- Upload Add
AcmeAgent.msias the Primary Install File. Next. - Describe Icon, App name
Acme Agent, VendorAcme, Description. Next. - Confirm Configuration Patch My PC reads the product code, version, and uninstall command from the MSI. Set Install Context to System and confirm Architecture. Add silent switches only if the MSI needs them, for example
/qn. Next. - Detection Leave Patch My PC Default. Next.
- Create Review and click Create.
EXE some legwork
An EXE does not store its details in a standard place, so detection needs help. Patch My PC publishes a helper script that reads the right values from the registry.
- Test install first Install the EXE on a clean test VM or in Windows Sandbox. Open Installed Apps and note the exact display name and version.
- Run the helper Use the CustomAppsHelper script to pull the display name, version, and uninstall string from the registry.
- Build the app Upload the EXE. On the Configuration tab enter the Apps & Features name and Version exactly as found, the silent install switches, and the uninstall command.
- Detection Patch My PC Default works once the name and version match the real installed values.
Microsoft 365 Apps special case
Microsoft 365 Apps is not an MSI. It uses Click to Run, driven by setup.exe from the Office Deployment Tool and an XML config. That is why it needs more steps than a normal app.
Prepare the files
- Build your config at config.office.com and save it as
Install.xml. - Download the Office Deployment Tool and extract
setup.exe. - Create an
Uninstall.xmlfrom the install config. Do it by hand, or use Patch My PC's helper.
Build the Custom App
- Primary Install File:
setup.exe - Extra Files:
Install.xmlandUninstall.xml - Silent install:
/configure Install.xml - Uninstall command (custom):
& '.\setup.exe' /configure '.\uninstall.xml' - Detection: Patch My PC Default. Test install once to capture the exact ARP name and version.
Online vs offline content
| Online (recommended) | Offline | |
|---|---|---|
| Package size | Small, content streams from the Microsoft CDN at install | Large, often 4 GB or more, content is bundled |
| Best for | Most environments | Devices that cannot reach the Office CDN |
| Extra step | None | A pre install script expands the bundled content first |
Invoke-M365AppsHelper.ps1, which reads your Install.xml and generates the package files, commands, and detection for you. See the Community Scripts repo.Deploy the app
Creating the app adds it to your catalog. Deploying it sends it to Intune and assigns it to people.
- Open the app Find your Custom App in the App Catalog and click Deploy.
- Configurations Add pre or post install scripts if needed. For zipped content, a pre install script expands the archive before the installer runs.
- Assignments Target your Entra ID groups. Start with a small test group.
- Deploy Confirm. Patch My PC publishes the app to Intune.
- Validate Install from the Company Portal on a test device. Check the install log under
C:\Windows\Tempif anything fails.
Migrating existing Intune apps
If apps are already in Intune, do not blindly repackage everything. Treat it as a triage and cutover exercise: sort what is there, move each class the right way, and align detection so the switch is silent.
1. Triage what is already there
Pull the existing app list from Intune and sort each app into one of four buckets. Each is handled differently.
| Existing app type | Best treatment |
|---|---|
| Public third party app in the Patch My PC catalog (Chrome, Reader, Zoom, 7-Zip) | Do not repackage. Enable the catalog app and let Patch My PC own packaging and patching. |
| In-house or line of business app | Rebuild as a Patch My PC Custom App, then retire the manual one. |
| Microsoft 365 Apps | Leave it. Manage through Microsoft's servicing model and update channels, not a redeploy. |
| Store or winget apps | Usually leave to the Store. Move only if you specifically want Patch My PC patching. |
2. Migrate without disruption
The key to a clean cutover is detection. When the new app's detection (Apps & Features display name, and version equal to or greater than) matches what is already installed, devices report as installed and Patch My PC simply takes over patching, with no reinstall and no user impact.
- Stand up the PMPC version Enable the catalog app, or build a Custom App for line of business software.
- Pilot to a small group Target an Entra ID group that already has the legacy app installed.
- Validate detection Confirm the app reports as installed with no reinstall, and that future updates flow.
- Broaden the assignment Extend the PMPC app to the full target groups.
- Retire the legacy app Remove its assignment, or delete the legacy app object.
Maintain: update, modify, remove
| Task | How | Notes |
|---|---|---|
| New version | Open the app, click Add Version, walk the File, Configuration, Detection, and Summary tabs, then Create | The new version installs on the next sync, or use Sync Now |
| Change settings | Use Modify a Custom App | Adjust metadata, configuration, or detection |
| Uninstall | Use Uninstall a Custom App | Removes the app from targeted devices |
| Delete | Use Delete a Custom App | Removes the app from your catalog |
How detection works
Intune needs a way to know the app is present. The default detection method scans the uninstall registry and looks for a match.
- The Display Name matches the Apps & Features name you set on the Configuration tab.
- The Display Version is equal to or greater than the version you set.
When you deploy the latest build of a product and do not know the exact version number, this name plus version rule is what makes detection reliable. The values you enter must match what the installer actually writes. This is why a test install matters for EXE and Microsoft 365 Apps.
Troubleshooting and gotchas
| Symptom | Likely cause | Fix |
|---|---|---|
| App installs but Intune shows failed | Detection name or version does not match the real install | Test install, capture the exact ARP name and version, correct the Configuration tab |
| Install never completes | Missing silent switch, or a conflicting process is open | Add the correct silent parameters and list conflicting processes |
| EXE detection unreliable | No standard metadata in the EXE | Use the CustomAppsHelper script to read the registry values |
| PSADT package fails on some devices | .NET 4.7.2 not present | Ensure .NET 4.7.2 is on targeted devices |
| Offline Microsoft 365 package too large to manage | Office content bundled into the package | Use online mode, or compress content and expand it with a pre install script |
| Need the new version out now | Waiting on the daily sync | Use Sync Now |
Install logs for most Custom Apps land in C:\Windows\Temp. Microsoft 365 Apps writes its own log there too.
Reference links
Patch My PC documentation
- Custom Apps home
- Custom Apps Overview
- Custom Apps Requirements
- Onboard to Custom Apps
- Create a Custom App (File, General Information, Configuration, Detection Rules, Summary tabs)
- Update a Custom App
- Modify a Custom App
- Uninstall a Custom App
- Delete a Custom App
- Find properties for EXE-Based Installers
- Add an Intune Connection
Worked examples and scripts
- Package Microsoft 365 Apps as a Custom App
- Package Visual Studio 2022 as a Custom App
- Patch My PC Community Scripts (GitHub)
- CustomAppsHelper script (EXE properties)