Skip to content

Commit 3a46124

Browse files
P2-1: Surface unpackaged WinUI 3 limitations before developers invest time (#6665)
* P2-1: Surface unpackaged WinUI 3 limitations prominently Key changes: - unpackage-winui-app.md: Rename to 'Distribute an unpackaged WinUI 3 app', improve title/description metadata, add prominent IMPORTANT callout at the top listing all four limitations before the how-to steps (no single-file EXE, runtime dependency, no package identity, not Store-eligible). Previously these were buried at the bottom. - choose-distribution-path.md: Add 'Unpackaged WinUI 3' row to the main comparison table. Add full 'Unpackaged WinUI 3' section with honest pros/cons and 'for most apps MSIX is better' guidance. - publish-first-app.md: Fix misleading '(for example, a self-contained EXE)' parenthetical — unpackaged WinUI 3 cannot produce single-file EXEs. Updated cross-link copy to be accurate. Addresses P2-1 from Indie Dev Doc Plan Round 2 (04/20/2026). Source: indie-dev-additional-findings.md finding #10 (SO 3k views). Co-authored-by: Copilot <[email protected]> * Address Copilot feedback: fix Store-eligibility, package identity, and MDM claims - unpackage-winui-app.md: Add 'via package manifest' qualifier to 'No package identity' bullet (Win32 registry/shortcut mechanisms still work for unpackaged apps) - unpackage-winui-app.md: Replace 'Not Store-eligible' with accurate statement: no MSIX path, but MSI/EXE installer submission is a separate path that does work - unpackage-winui-app.md: Fix link text 'MSIX packaging' -> 'packaging your app' (points to overview) - choose-distribution-path.md: Fix Enterprise MDM column for Unpackaged WinUI 3 (Win32 Intune/ConfigMgr deployment does work; was incorrectly '❌ No') - choose-distribution-path.md: Fix Store column for Unpackaged WinUI 3 (same MSI/EXE nuance) - choose-distribution-path.md: Fix 'Not Store-eligible' in Limitations section - publish-first-app.md: Add self-contained deployment qualifier to runtime dependency sentence Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]>
1 parent b5d2331 commit 3a46124

3 files changed

Lines changed: 47 additions & 10 deletions

File tree

hub/apps/package-and-deploy/choose-distribution-path.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ How you distribute your Windows app affects code signing costs, update mechanics
2525
| **MSIX sideload (enterprise)** | Internal LOB apps via Intune/ConfigMgr | 💲 Azure Artifact Signing (formerly Trusted Signing) (~$10/mo) or self-signed + Intune cert profile | ✅ Via App Installer file or MDM | ✅ Native | ❌ No |
2626
| **MSIX direct download (ISV)** | Commercial apps sold from your own site | 💲 CA-trusted cert required ([Azure Artifact Signing (formerly Trusted Signing)](/azure/trusted-signing/) recommended) | ✅ Via `.appinstaller` file | ⚠️ Limited | ❌ No |
2727
| **Packaging with external location** | Existing apps with own installer needing Windows features | 💲 Same as MSIX direct download | ✅ Your existing mechanism | ⚠️ Limited | ❌ No |
28+
| **Unpackaged WinUI 3** | Niche: enterprise without MSIX capability, or max install simplicity | 💲 Cert recommended for SmartScreen | ❌ Manual only | ⚠️ Limited (via Intune/ConfigMgr Win32 deployment) | ⚠️ Limited (Store-listed installer submission) |
2829

2930
## Microsoft Store (recommended)
3031

@@ -150,7 +151,31 @@ If you have an existing app with its own installer (WiX, NSIS, InstallShield) an
150151

151152
[Grant package identity by packaging with external location](../desktop/modernize/grant-identity-to-nonpackaged-apps-overview.md)
152153

153-
## What about other installer formats?
154+
## Unpackaged WinUI 3
155+
156+
Unpackaged distribution removes MSIX from the picture entirely — the app runs directly from a folder without a package manifest. This is a niche option suited to specific scenarios.
157+
158+
**What you get:**
159+
- Simpler build output (a folder of files, no MSIX tooling)
160+
- No MSIX infrastructure required on target machines
161+
- Works on machines where MSIX sideloading isn't enabled
162+
163+
**Limitations:**
164+
- **No single-file EXE** — The Windows App SDK runtime must ship as separate files alongside your executable
165+
- **Runtime deployment** — You must bundle the Windows App SDK runtime installer, or use self-contained deployment (larger output)
166+
- **No package identity** — No automatic updates, no background tasks, no file type associations via manifest
167+
- **No MSIX/package-identity Store submission** — This model has no package identity and cannot be submitted to the Store as an MSIX package. A traditional installer (MSI/EXE) can be submitted separately, but that is outside this distribution path.
168+
- SmartScreen warnings unless signed with a CA-trusted certificate
169+
170+
**When to choose this:**
171+
- Your target environment can't use MSIX (uncommon; most managed enterprise environments support MSIX)
172+
- You're building an internal tool where MSIX overhead isn't justified
173+
174+
**For most WinUI 3 apps, MSIX (via Store or direct download) is the better path.** The limitations above often surprise developers who discover them after investing in unpackaged distribution.
175+
176+
[Distribute an unpackaged WinUI 3 app](unpackage-winui-app.md) — step-by-step guide with runtime deployment options
177+
178+
154179

155180
Many Windows apps are distributed using ClickOnce, MSI, WiX, Inno Setup, or similar technologies. These are established and supported options, especially for apps that can't use MSIX or don't need Store distribution. The table below summarizes the common options and their trade-offs.
156181

hub/apps/package-and-deploy/publish-first-app.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Publish your first Windows app
33
description: An end-to-end guide for indie developers — from a built app to users' hands. Covers choosing a distribution path, code signing, packaging, and getting your first users.
44
ms.topic: concept-article
5-
ms.date: 04/17/2026
5+
ms.date: 04/20/2026
66
ms.localizationpriority: high
77
---
88

@@ -46,7 +46,7 @@ How you package your app depends on the app framework you used.
4646

4747
WinUI 3 apps created with the Windows App SDK project templates are **already packaged as MSIX by default**. When you build your solution in Visual Studio, the output is an `.msix` or `.msixbundle` file ready for Store submission or direct distribution.
4848

49-
If you want to distribute an unpackaged WinUI 3 app (for example, a self-contained EXE), see [Unpackage a WinUI app](unpackage-winui-app.md).
49+
If you want to distribute an unpackaged WinUI 3 app (without MSIX packaging), see [Distribute an unpackaged WinUI 3 app](unpackage-winui-app.md). Note that unpackaged WinUI 3 apps cannot produce a single-file EXE and require the Windows App SDK runtime on the user's machine (either installed separately via the runtime installer, or bundled using self-contained deployment).
5050

5151
### WPF and WinForms
5252

hub/apps/package-and-deploy/unpackage-winui-app.md

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
11
---
2-
title: How to unpackage a WinUI app
3-
description: How to unpackage a WinUI app
2+
title: Distribute an unpackaged WinUI 3 app
3+
description: Learn how to set WindowsPackageType=None for unpackaged WinUI 3 distribution, understand the runtime deployment options, and review the key limitations before you start.
44
ms.topic: how-to
5-
ms.date: 12/15/2025
6-
keywords: windows app sdk, winappsdk, winui
5+
ms.date: 04/20/2026
6+
keywords: windows app sdk, winappsdk, winui, unpackaged, WindowsPackageType, bootstrapper, self-contained
77
ms.localizationpriority: medium
88
content-type: how-to
9-
#Customer intent: As a Windows developer, I want to learn how to create an unpackaged WinUI app.
9+
#Customer intent: As a Windows developer, I want to distribute my WinUI 3 app without MSIX packaging and understand the limitations and runtime requirements.
1010
---
1111

12-
# Unpackage a WinUI 3 app
12+
# Distribute an unpackaged WinUI 3 app
1313

14-
Packaging is an important part of any Windows App SDK project. For details on your options, see [Advantages and disadvantages of packaging your app](/windows/apps/package-and-deploy/#advantages-and-disadvantages-of-packaging-your-app).
14+
Unpackaged distribution lets you ship a WinUI 3 app without MSIX — useful for enterprise scenarios where MSIX deployment isn't available, or for developers who prefer a traditional folder-based install.
15+
16+
> [!IMPORTANT]
17+
> **Review these limitations before you start.** Unpackaged WinUI 3 apps have constraints that affect your distribution strategy:
18+
>
19+
> - **No single-file EXE** — The Windows App SDK runtime and WinUI 3 dependencies must exist as separate files. The .NET single-file publish feature (`PublishSingleFile`) cannot bundle them into one executable. You will always distribute a folder of files (or wrap them in a traditional installer such as WiX or Inno Setup).
20+
> - **Runtime dependency** — The Windows App SDK runtime must be present on the user's machine. You must either bundle the runtime installer with your app, or use self-contained deployment (which significantly increases output size). See [Deploying the Windows App SDK runtime](#deploying-the-windows-app-sdk-runtime) below.
21+
> - **No package identity** — Without a package manifest, your app cannot use manifest-based Windows features: no automatic updates via App Installer or Store, no background task registration, and no file type associations or Start menu tile customization via package manifest. (Traditional Win32 mechanisms such as installer-written registry entries and shortcuts still work.)
22+
> - **No MSIX/package-identity Store submission** — This distribution model has no package identity; it is not eligible as an MSIX submission to the Microsoft Store. (You can submit a traditional installer to the Store via the [MSI or EXE installer submission path](../publish/publish-your-app/msi/upload-app-packages.md), but that is a separate workflow from what this article describes.)
23+
>
24+
> If these constraints are a concern, consider [packaging your app](index.md) (recommended for most apps) or [packaging with external location](../desktop/modernize/grant-identity-to-nonpackaged-apps-overview.md) to add package identity without a full MSIX conversion.
25+
26+
For details on all packaging options, see [Advantages and disadvantages of packaging your app](/windows/apps/package-and-deploy/#advantages-and-disadvantages-of-packaging-your-app).
1527

1628
If you choose to unpackage a new or existing WinUI app, follow these steps:
1729

0 commit comments

Comments
 (0)