Windows App SDK Preview 3 Supports Non-MSIX WinUI 3 App Deployment
The third preview of the Windows App SDK (formerly "Project Reunion") supports deploying WinUI 3 apps without MSIX-packaging.
The Windows App SDK is described by Microsoft as the evolution of Windows desktop app development because it provides a unified set of libraries, frameworks, components and tools that developers can use to consistently create any desktop app on OS versions since Windows 10 v1809. When it was announced, Microsoft said it would address the complexity of Windows app development that was caused by two different sets of APIs for the older Win32 platform and the newer Universal Windows Platform (UWP).
The Win32 API (used for what is often called "classic Windows desktop development") was the original C/C++ platform for native Windows apps, providing close-to-the-metal performance with direct access to system hardware. Later came UWP, described as a "modern" take on Windows development. It provides a common type system and application model and APIs for all Windows 10 devices. UWP apps are basically containerized with lower privilege levels and package identity delivered via an MSIX installer. The Windows App SDK unifies these disparate API sets by basically decoupling them from the OS and serving them up via NuGet.
The SDK's WinUI component serves as the native UI layer for Windows, embodying Fluent Design and delivering modern, performant and polished user experiences to both Win32 and UWP apps. This component builds on the identity + packaging + deployment transparent ideas that Windows App SDK supports for apps as well, Microsoft said.
As development of the SDK has progressed, features were added for both the MSIX-packaged apps and the unpackaged apps, as this graphic from the project's roadmap shows:
The Preview 3 release notes indicate the new support for deploying WinUI 3 apps without MSIX-packaging. Related documentation for "Instructions for WinUI 3 unpackaged desktop apps" warns that WinUI 3 support for unpackaged apps is currently in preview, not yet ready for production. Also, "You must download the Windows App SDK Preview Extension for Visual Studio to get the project templates and build unpackaged desktop apps with WinUI 3."
The new support also comes with a bunch of "known issues" that developers need to watch out for. Just some of those include:
- Unpackaged WinUI 3 applications are only supported on Windows versions 1909 and later.
- Unpackaged WinUI 3 applications are supported on x86 and x64, arm64 support will be added in the next stable release.
- Single-project MSIX Packaging Tools for VS 2019 or VS 2022 is required for unpackaged apps.
- In an unpackaged app, you may receive a prompt to install .NET 3.5; if you do, you can ignore it.
- Some APIs are not currently supported in unpackaged apps. We are aiming to fix this in the next stable release. A few examples:
- ListView, CalendarView, and GridView controls are using the incorrect styles and we are aiming to fix this in the next stable release.
As the above graphic shows, support for MSIX desktop apps and unpackaged desktop apps now goes across stable, preview and experimental channels. Support for UWP apps, however, is only available in the experimental channel. Microsoft stirred up some debate with its recent announcement that ".NET 5/6 Will Not Be Coming to UWP Project Types," which many decried as a further deprecation of UWP on the part of the company.
David Ramel is an editor and writer for Converge360.