Library / SDK
microsoft/WindowsAppSDK avatar
microsoft/WindowsAppSDK

Windows App SDK: what Microsoft's desktop platform layer actually gives you

The Windows App SDK empowers all Windows desktop apps with modern Windows UI, APIs, and platform features, including back-compat support, shipped via NuGet.

4,695 stars478 forksC++MIT

At a glance

What is it?
Windows App SDK (formerly Project Reunion) packages WinUI 3, modern lifecycle APIs and runtime installers into a NuGet-delivered framework for Win32, WPF and WinForms apps. Here is how it installs, what it constrains, and when it is the wrong layer.
Who is it for?
Adopt Windows App SDK when you are building or modernising a Windows desktop app that needs WinUI 3, modern lifecycle helpers or startup tasks, and you accept the NuGet plus runtime installer deployment chain. Do not adopt it if you need a single self-contained binary with no runtime dependency, or if you are staying on UWP and have no reason to move.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem Windows App SDK solves for existing desktop code

Windows desktop development has been split for years. Win32, WPF and WinForms apps get broad OS reach but miss newer platform features. UWP apps get those features but demand a packaging and lifecycle model that many codebases cannot absorb. Windows App SDK exists to close that gap without a rewrite. The README describes it as libraries, frameworks, components and tools that let apps "access powerful Windows platform functionality from all kinds of apps on many versions of Windows", combining Win32 with modern API usage.

The target reader is a developer with an existing desktop codebase, or one starting a new Windows-only desktop product, who wants WinUI 3 as the UI layer. The README lists Win32, WPF and WinForms as supported hosts, and names WinUI 3 as the Fluent Design UI stack. It also states there is no requirement to use MSIX, which matters if your product ships through a custom installer rather than the Store. That last point is the practical reason teams look at this repository at all: you can adopt the modern APIs incrementally instead of migrating the whole application model.

How the NuGet package, runtime and WinUI 3 fit together

The repository is a mono-repo for a framework, not a single library. The package is published as Microsoft.WindowsAppSDK on NuGet, and the README describes the project as shipped via NuGet. The top-level layout confirms the shape: WindowsAppRuntime.sln, installer/, build/, tools/, specs/ and test/ sit alongside version.props and SdkVersion.props. Those files are where the shipped version of the framework is pinned for a build.

Architecturally, your app references the NuGet package and calls the framework APIs. At runtime, the app depends on the Windows App Runtime being present on the machine, which is why the repository carries an installer directory and why the related search traffic is full of runtime installer queries. The README also points at sibling repositories for the pieces underneath: microsoft-ui-xaml for WinUI, CppWinRT and CsWinRT for language projection, and msix-packaging for packaging.

Backwards compatibility is the design constraint that shapes everything else. The README states support down to Windows 10 1809 (build 17763), and is honest that some APIs depend on newer OS features, naming new Action Center functionality as an example. The stated policy is to keep that the exception and provide reasonable fallbacks. That is a real trade-off: the same API surface can behave differently depending on the OS build underneath, so version-specific testing is part of the cost, not an optional extra.

Getting Microsoft.WindowsAppSDK into a project and shipping a first window

The README does not carry a step-by-step install walkthrough. It routes you to the getting-started links instead: "Build your first app with WinUI" at aka.ms/winui-getstarted, the developer documentation, and the WindowsAppSDK-Samples repository. For a new project, follow those. For an existing project, the install is a package reference to Microsoft.WindowsAppSDK, which the README presents as the distribution channel for the framework.

After restore, the build resolves the framework reference and your project gains access to the Windows App SDK APIs. The exact version you get is whatever the package feed resolves; the repository pins its own build through version.props and SdkVersion.props, and the README links release notes at learn.microsoft.com/windows/apps/windows-app-sdk/release-channels so you can pick a channel deliberately.

If you are starting fresh rather than retrofitting, the fastest path to something running is the WinUI 3 template route the README points to, then the WinUI 3 Gallery sample app to see what the controls and APIs do before you commit to a layout. For C++ projects, the repository ships HybridCRT.props and WindowsAppSDK.Build.Cpp.props, which is a signal that the C++ build integration has its own knobs rather than being a plain package reference.

The part the README does not walk you through is runtime deployment. It explicitly says MSIX is not required but links to reliability and security benefits of using it. If you ship a non-MSIX installer, the Windows App Runtime has to be installed on the target machine by your installer, and the repository's installer/ directory is the place that logic lives for Microsoft's own distribution.

Where Windows App SDK is the wrong layer

The clearest limitation is stated by the project itself: backwards compatibility reaches Windows 10 1809 (build 17763), and some APIs depend on newer OS features with fallbacks that are best-effort. If your product must support an older Windows 10 build, this framework is not the right foundation, and no amount of API surface will change that.

The second limitation is deployment. Choosing not to use MSIX means you own the runtime installation problem. The README frames MSIX as optional but beneficial, which reads as an acknowledgement that the non-MSIX path carries more work and weaker guarantees. A team expecting a single self-contained executable with no runtime prerequisite will find that expectation unmet.

Third, the framework is Windows-only by definition. The README's framing is entirely about Windows desktop apps across Windows versions. If cross-platform reach is a requirement, this is the wrong project, and the WinUI 3 layer in particular is not portable.

Finally, the repository is a build tree, not a drop-in dependency. The top-level entries include BuildAll.cmd, BuildAll.ps1, DevCheck.cmd, TestAll.cmd and TestAll.ps1. Those exist for people building the framework itself. If you only consume the NuGet package, you never touch them, and you should not treat this repository as something to clone and build to get the library.

Windows App SDK versus WPF and WinUI 3 as separate choices

The search questions around this project cluster on comparisons, and the comparisons are not all the same kind. Windows App SDK versus WPF is a framework-versus-framework question: WPF is a mature .NET UI stack with its own rendering and control model, and the README lists WPF as one of the hosts that Windows App SDK supports. That means the two are not mutually exclusive. A WPF app can reference the SDK for modern platform APIs while keeping its existing UI.

Windows App SDK versus WinUI 3 is a different relationship. WinUI 3 is a component of the SDK, and the README points to microsoft-ui-xaml as the WinUI repository. Choosing WinUI 3 means choosing the SDK as the delivery vehicle for it. The distinction is about scope: the SDK is the platform layer, WinUI 3 is the UI layer inside it.

Windows App SDK versus UWP is the migration question. UWP gives you a packaged application model and a restricted API surface. The SDK gives you modern APIs with an optional packaging model, which is why the README's note that MSIX is not required matters. If you are on UWP and the application model is working for you, there is no forced reason to move.

Versus the Windows SDK: they are unrelated layers. The Windows SDK is the header, library and tooling set for building against Windows itself. Windows App SDK is a redistributable framework on top. A machine can have both, and the repository's own build files reference both.

Maintenance cadence, licensing and the upgrade bill

The repository is not archived, and the last push was on 2026-09-22. Releases are recent and frequent: v2.5.1 on 2026-09-16, v2.4.0 on 2026-08-13, and an experimental 2.4.1-exp on 2026-08-25. The existence of a separate experimental channel matters for planning, because it means not every published version is a stable target. The README links release channels documentation, which is where the stable and experimental tracks are defined.

Upgrade cost is driven by the compatibility policy. Because the framework supports OS builds down to 17763 and some APIs degrade on older builds, moving between SDK versions means re-checking behaviour on the oldest OS you support, not just on your development machine. The repository's version.props and SdkVersion.props show that the shipped version is a deliberate pin rather than a floating reference, and pinning is the safer default when your installer also has to place a matching Windows App Runtime.

Licensing is MIT for the repository, per the LICENSE file. The README adds a detail worth reading closely: the .github/skills/ directory contains GitHub Copilot agent skills that "may have their own licensing terms", and each skill's directory should be checked for its license file. That means the MIT grant on the repository as a whole does not automatically settle the terms of every file inside it. This is a description of what the README says, not legal advice.

The README also states that the project collects usage data and sends it to Microsoft, with no data collection performed when using private builds. If your organisation has constraints on telemetry from development tooling, that sentence is the one to read before adopting.

Editorial conclusion

Adopt Windows App SDK when you are building or modernising a Windows desktop app that needs WinUI 3, modern lifecycle helpers or startup tasks, and you accept the NuGet plus runtime installer deployment chain. Do not adopt it if you need a single self-contained binary with no runtime dependency, or if you are staying on UWP and have no reason to move. Verify first that your minimum supported OS is Windows 10 1809 (build 17763) or later, that you know which release channel you are pinning, and that your installer strategy covers the Windows App Runtime, because the README states using MSIX is optional but recommends it for reliability and security.

Frequently asked questions

What is Windows App SDK?

It is a set of libraries, frameworks, components and tools from Microsoft, formerly called Project Reunion, that lets apps on many versions of Windows use modern platform functionality. It includes WinUI 3 support and is shipped via NuGet as Microsoft.WindowsAppSDK.

How do I install Microsoft.WindowsAppSDK?

The README does not give a step-by-step install procedure; it links to the WinUI getting-started guide and the samples repository. For an existing project the package is added as a NuGet reference, and the README also points to release channels documentation for choosing a version.

How do I use Windows App SDK?

You reference the NuGet package from a Win32, WPF, WinForms or similar desktop app and call its APIs, with WinUI 3 available as the UI layer. The README directs new users to the WinUI getting-started link, the developer documentation and the WindowsAppSDK-Samples repository.

What is the difference between Windows App SDK and WinUI 3?

WinUI 3 is a component of the Windows App SDK rather than a separate product. The README lists WinUI 3 support as a feature of the SDK and points to the microsoft-ui-xaml repository as the WinUI home.

Does Windows App SDK work with WPF?

Yes. The README lists WPF among the supported hosts, alongside Win32 and WinForms, so a WPF app can reference the SDK for modern platform APIs without replacing its UI stack.

Official sources

  1. License: MIT
  2. microsoft/WindowsAppSDK on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/microsoft-windowsappsdk.svg)](https://hysenlabs.com/projects/microsoft-windowsappsdk)