Announcing: WinUI 3 in Windows App SDK 1.0! 🎆🎉🎇
See original GitHub issueWe’ve just shipped the latest stable version of WinUI 3, which is a part of Windows App SDK v1.0! This release includes several new features and lots of bug fixes and stability improvements. This version of WinUI 3 can be used for shipping production apps to the Microsoft Store.
Shipping WinUI 3 as a part of the Windows App SDK
In order to use this version of WinUI 3, you’ll download the Windows App SDK Visual Studio Extension (VSIX) to get started. The Windows App SDK VSIX includes WinUI Project Templates that you’ll use to build your WinUI 3 app, as well as access to other Windows App SDK components. The Windows App SDK package includes a reference to the WinUI 3 NuGet package.
For more on the Windows App SDK, see their documentation and repository. For installation instructions, see Set up your development environment.
What’s new
These are all of the new features and updates in WinUI 3 since the release of Windows App SDK 0.8:
- We’ve added new controls (PipsPager, Expander, BreadcrumbBar) and updated existing controls to reflect the latest Windows styles from WinUI 2.6.
- Single-project MSIX packaging is supported in WinUI by creating a new application using the “Blank App, Packaged…” template.
- We now support deploying WinUI 3 apps without MSIX-packaging on Windows versions 1809 and above. Please view Create a WinUI 3 unpackaged desktop app for additional information.
- WinUI 3 projects can now set their target version down to Windows 10, version 1809. Previously, they could only be set as low as version 1903.
- In-app toolbar, Hot Reload, & Live Visual Tree for WinUI packaged apps are supported in Visual Studio 2022 Preview 5 and GA. If you need unpackaged tooling support, please vote for that here.
Experimental Features
This release does not include experimental features. If you’d like to continue using experimental features in your app, feel free to continue using the latest Windows App SDK 1.0 Experimental.
Known Issues
- Known issues for both packaged and unpackaged WinUI applications:
- Run-time error in C++ apps that reference a C++ Windows Runtime Component: To resolve, add the below target to the end of the Windows Runtime Component’s .vcxproj:
<Target Name="GetPriIndexName">
<PropertyGroup>
<!-- Winmd library targets use the default root namespace of the project for the App package name -->
<PriIndexName Condition="'$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
<!-- If RootNamespace is empty fall back to TargetName -->
<PriIndexName Condition="$(PriIndexName) == ''">$(TargetName)</PriIndexName>
</PropertyGroup>
</Target>
-
Known issues for WinUI applications with Single-project MSIX (Blank App, Packaged template):
- Missing Package & Publish menu item until you restart Visual Studio: When creating a new app with Single-project MSIX in both Visual Studio 2019 and Visual Studio 2022 using the Blank App, Packaged (WinUI 3 in Desktop) project template, the command to publish the project doesn’t appear in the menu until you close and re-open Visual Studio.
- A C# app with Single-project MSIX will not compile without the “C++ (v14x) Universal Windows Platform Tools” optional component installed. View Install developer tools for additional information.
- Potential run-time error in an app with Single-project MSIX that consumes types defined in a referenced Windows Runtime Component:
To resolve, manually add activatable class entries to the appxmanifest.xml.
- The expected error in C# applications is “COMException: Class not registered (0x80040154 (REGDB_E_CLASSNOTREG)).
- The expected error in C++/WinRT applications is “winrt::hresult_class_not_registered”.
-
Known issues for WinUI applications without MSIX-packaging (unpackaged apps):
- Some APIs require package identity and are not supported in unpackaged apps, such as:
- ApplicationData
- StorageFile.GetFileFromApplicationUriAsync
- StorageFile.CreateStreamedFileFromUriAsync
- ApiInformation (not supported on Windows 10)
- Package.Current
- Any API in the Windows.ApplicationModel.Resources namespace
- Any API in the Microsoft.Windows.ApplicationModel.Resources namespace
- Some APIs require package identity and are not supported in unpackaged apps, such as:
-
Known issues for packaging and deploying WinUI applications:
- The
Package
command is not supported in WinUI apps with Single-project MSIX (Blank App, Packaged template). Instead, use thePackage & Publish
command to create an MSIX package. - To create a NuGet package from a C# Class Library with the
Pack
command, ensure the activeConfiguration
isRelease
. - The
Pack
command is not supported in C++ Windows Runtime Components to create a NuGet package.
- The
Getting started
First, you’ll need to set up your dev environment with the appropriate technologies. See our documentation for installation instructions and more information on project types:
While you’re developing, check out the API Reference documentation.
Take a look at our walk-through docs:
You can also update your existing WinUI 3 app to use the new Windows App SDK 1.0 release using these instructions: Update existing projects to the latest release of the Windows App SDK.
We love feedback! We encourage you to file any bug, big or small, on our repo using this template. Knowing which issues and features are important and/or critical to our customers highly influences which ones we tackle. Even though we ship with the Windows App SDK, please continue to file WinUI-specific bugs on this repo.
Using WinUI 3 - Windows App SDK 1.0 with our ecosystem partners
This latest release is in the process of being integrated into several other important ecosystem technologies. To test out and follow that progress, check out some of our partner technologies below:
-
Actipro Software is migrating their vast UI control offerings over to WinUI 3, including their SyntaxEditor code editor, propertygrid, native type edit boxes, docking/MDI, charts, and more.
-
DevExpress: DevExpress has released 20 new WinUI controls with Windows App SDK support, including the Data Grid, Scheduler, Charts, Ribbon Toolbar, and more. All 20 UI components are available free-of-charge.
-
Esri: ArcGIS Runtime SDK for .NET adds mapping, spatial analytics, and location intelligence capabilities to your apps on Android, iOS, and Windows. Support for WinUI 3 is now available.
-
GrapeCity plans to bring their popular desktop UI controls to WinUI. Learn more about their data connection service components for WinUI.
-
Infragistics: Ultimate UI for WinUI brings business critical, high performing, and feature rich line of business controls to your apps that target any platform that runs Windows (including Windows on ARM64).
-
Syncfusion: UI Control toolkit supporting Windows App SDK with customizable controls.
-
Telerik UI for WinUI: the market first UI controls suite for crafting Win32 and UWP apps with WinUI 3, comes with feature-rich controls like Ribbon, DataGrid, Charts, Gauges, Barcode, and more.
-
Uno Platform: Use WinUI 3 – Windows App SDK 0.8, XAML and C# to build pixel-perfect, single-codebase, native applications that can run on Web, Desktop and Mobile. It is free, open-source and available today.
-
Windows Community Toolkit (Microsoft): The WCT is currently working on supporting Windows App SDK 1.0. It provides tons of new controls and capabilities for use in your WinUI app. You can check out their open source repo here.
What’s next
To keep up with progress being made on WinUI 3, please see our feature roadmap which gets updated regularly. We also give monthly updates on our WinUI Community Calls, where you can directly ask the team any questions you have.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:29
- Comments:11
Top GitHub Comments
Hi, This is pretty awesome!
A few notes:
Bugs, lacking features and slow performance are a problem. Worse, these problems give the impression that WinUI 3 is nothing more but a very unwanted foster child for Microsoft. At present, Microsoft treats it as a hobby project, not a serious SDK that developers should invest into.