Automatic Updates on Windows
- Goal
-
Windows users receive newer builds without manually hunting installers.
- Why
Pick a primary path
| Path | When to use |
|---|---|
Microsoft Store / MSIX |
You can meet Store policies; want OS-managed updates |
winget-upgradable installer |
Classic desktop app; you already ship MSI/EXE; want discovery in winget |
In-app updater |
Need fast channels, multiple tracks, or non-Store distribution with guided UX |
Combining winget (install/discover) with in-app updates (speed) is common.
In-app updater checklist
-
Publish a versioned update feed (JSON/YAML/XML) from CI when you cut a release
-
Code-sign installers and verify before apply
-
Download to a staging directory; apply on restart
-
Keep last-known-good when feasible
-
Honor a disable switch for enterprise (
UpdatePolicy=Disabledor env var) -
Show status on the About dialog
winget path
-
Ship a stable, versioned installer URL per release
-
Submit or PR manifests to
microsoft/winget-pkgs(or your private source) -
Verify
winget upgrade Your.Packageworks after publishSee Winget registration.