Microsoft has just released Windows App SDK 1.0.0-Preview3, a toolkit that empowers desktop app developers to build apps with a modern Windows UI, APIs, and platform features.

WinUI 3

The main new feature with version 1.0.0-Preview 3 of the SDK is support for deploying WinUI 3 apps without MSIX-packaging. Please view Instructions for WinUI 3 unpackaged desktop apps to configure your WinUI 3 application to support unpackaged deployment.

Known issues:

  • 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.

For more information or to get started developing with WinUI, see:

Other limitations and known issues

  • Unpackaged apps not supported on Windows 10 version 1809: We are aiming to fix this in the next stable release.
  • C# Single-project MSIX app doesn’t compile if C++ UWP Tools aren’t installed: If you have a C# Single-project MSIX project, you will need to install the C++ (v14x) Universal Windows Platform Tools optional component.
  • This release introduces the Blank App, Packaged (WinUI 3 in Desktop) templates for C# and C++ projects. These templates enable you to build your app into an MSIX package without the use of a separate packaging project. These templates have some known issues in this release:
    • Missing Publish menu item until you restart VS: When creating a new app in both VS 2019 and VS 2022 using the Blank App, Packaged (WinUI 3 in Desktop) project template, the command to publish the project does not appear in the menu until you you close and re-open Visual Studio.
    • Error when adding C++ static/dynamic library project references to C++ apps using Single-project MSIX Packaging: Visual Studio displays an error that the project cannot be added as a reference because the project types are not compatible.
    • Error when referencing a custom user control in a class library project: The application will crash with the error that the system cannot find the path specified.
    • C# template for Visual Studio 2019. You will encounter the error when you try to build the project: “The project doesn’t know how to run the profile project name“. To resolve this issue, install the Single-project MSIX Packaging Tools extension.
    • C# template for Visual Studio 2019 and Visual Studio 2022. You will encounter the following error when you try to run or debug your project on your development computer: “The project needs to be deployed before we can debug. Please enable Deploy in the Configuration Manager.” To resolve this issue, enable deployment for your project in Configuration Manager. For detailed instructions, see the instructions for creating a WinUI 3 desktop app with C# and the Windows App SDK 1.0 Preview 2.
    • C++ template for Visual Studio 2022 version 17.0 releases up to Preview 4. You will encounter the following error the first time you try to run your project: “There were deployment errors”. To resolve this issue, run or deploy your project a second time. This issue will be fixed in Visual Studio 2022 version 17.0 Preview 7.
  • No support for Any CPU build configuration: When adding the Windows App SDK to an existing .NET application or component that supports Any CPU, you must specify the desired architecture: x86x64 or arm64.
  • C# projects using 1.0 Preview 3 must use the following .NET SDK: .NET 5 SDK version 5.0.400 or later if you’re using Visual Studio 2019 version 16.11.
  • If you want to co_await on the DispatcherQueue.TryEnqueue method, use the resume_foreground helper function in the Windows Implementation Library (WIL):
    1. Add a reference to Microsoft.Windows.ImplementationLibrary NuGet package.
    2. Add the #include <wil/cppwinrt.h> statement to your code file.
    3. Use wil::resume_foreground(your_dispatcher); to co_await the result.

Read more and find the download links at Microsoft here.