App packaging provides your application with a predictable installation, update, and servicing model on Windows. While WinUI 3 apps are packaged by default, many other types of apps aren't. And adding package identity unlocks a wide range of Windows capabilities. Features that depend on package identity to function include background tasks, notifications, live tiles, custom context menu extensions, share targets, and other extensibility points. Packaging also helps ensure cleaner deployments, reliable updates, and streamlined distribution through channels such as the Microsoft Store and enterprise deployment tools.
Not sure which packaging model is right for your app? See Packaging overview.
Choosing how to distribute your app — through the Microsoft Store, enterprise sideloading, or direct download? See Choose a distribution path for a side-by-side comparison of signing costs, update mechanics, and enterprise management per path. For the current status of distribution features (including the ms-appinstaller protocol change), see Current status of Windows app distribution features.
When deploying apps that use the Windows App SDK, you can choose between framework-dependent and self-contained deployment models. Framework-dependent apps rely on the Windows App SDK runtime and/or framework package being installed on the user’s machine. In contrast, self-contained apps bundle the Windows App SDK dependencies directly with the application, ensuring the app carries everything it needs to run. The right model depends on your distribution scenario, update strategy, and how much control you want over the app’s footprint and dependencies.
Deployment scenario quick reference
The table below maps common distribution goals to the recommended packaging mode, Windows App SDK runtime mode, and key constraints. For code signing costs and MDM manageability per distribution path, see Choose a distribution path.
Bundled if self-contained; requires runtime install if framework-dependent
Note
PublishSingleFile (single-file EXE) is supported for unpackaged, self-contained 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) do not support PublishSingleFile. For required MSBuild properties and build-time validation, see WindowsAppSDKSingleFileVerifyConfiguration.
Get started with packaging and deploying your Windows app
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.
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
Windows developer
feedback
Windows developer
is an open source project. Select a link to provide feedback: