Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
App packaging provides your app with a predictable installation, update, and servicing model on Windows. WinUI 3 apps are packaged by default, while many other app types aren't. Features that depend on package identity include background tasks, push notifications, Windows 10 live tiles, custom context menu extensions, share targets, and other extensibility points. Packaging also supports cleaner deployments, reliable updates, and distribution through channels such as the Microsoft Store and enterprise deployment tools.
Deployment determines how you distribute the app and any runtime dependencies to users. This overview helps you choose a packaging model, a distribution path, and, for apps that use the Windows App SDK, a framework-dependent or self-contained deployment model.
Choose packaging, distribution, and deployment options
- To compare packaged, packaged-with-external-location, and unpackaged models, see Packaging overview.
- To compare the Microsoft Store, enterprise, and direct-download paths, see Choose a distribution path.
- To compare framework-dependent and self-contained Windows App SDK deployment, see Windows App SDK deployment overview.
- For the current status of distribution features, including the
ms-appinstallerprotocol, see Current status of Windows app distribution features.
Windows app deployment scenario quick reference
The following table maps common distribution goals to packaging and Windows App SDK runtime options. For code-signing costs and mobile device management (MDM) support, see Choose a distribution path.
| Distribution goal | Packaging mode | Runtime mode | Windows App SDK runtime on target machine |
|---|---|---|---|
| Publish to Microsoft Store | Packaged (MSIX) | Framework-dependent | Auto-installed by Store |
| Direct MSIX download from website (with App Installer) | Packaged (MSIX) | Either | Bundled if self-contained; the framework package must be distributed with the app if framework-dependent |
| Enterprise deployment via Microsoft Intune or Microsoft Configuration Manager (ConfigMgr) | Packaged (MSIX) or packaged with external location (Windows 10, version 2004, build 19041, or later) | Either | Packaged apps can declare framework dependencies; framework-dependent apps packaged with external location must deploy the runtime separately |
| Direct download with a WiX or Inno installer | Packaged with external location or unpackaged | Self-contained recommended | Bundled by self-contained deployment |
| Xcopy or zip archive (no installer) | Unpackaged | Self-contained | Bundled by self-contained deployment |
| Framework-dependent download (smallest footprint) | Unpackaged | Framework-dependent | Must be pre-installed or deployed separately |
| Continuous integration artifact or internal test | Either | Self-contained simplifies machine setup | Bundled if self-contained; requires runtime installation if framework-dependent |
Note
PublishSingleFile (single-file EXE) works with unpackaged, self-contained .NET WinUI 3 apps (Windows App SDK 1.5 and later). It produces a single distributable EXE that extracts dependencies to a temp directory at first launch. Packaged apps (MSIX or packaged with external location) don't support PublishSingleFile. For required MSBuild properties and build-time validation, see WindowsAppSDKSingleFileVerifyConfiguration.
Packaging and deployment resources

Packaging
Prepare your app for distribution by configuring how it’s packaged, installed, and updated.

Deployment
Learn how to deliver and manage the Windows App SDK with your app using framework or self-contained deployment options.
Related content
Windows developer