Stable release channel for the Windows App SDK

The stable channel provides releases of the Windows App SDK that are supported for use by apps in production environments. Apps that use the stable release of the Windows App SDK can also be published to the Microsoft Store.

The following releases of the stable channel are currently available:

If you'd like to upgrade an existing app from an older version of the Windows App SDK to a newer version, see Update existing projects to the latest release of the Windows App SDK.

Note

The Windows App SDK was previously known by the code name Project Reunion. Some SDK assets such as the VSIX extension and NuGet packages still use the code name, but these assets will be renamed in a future release. Some areas of the documentation still use Project Reunion when referring to an existing asset or a specified earlier release.

Version 0.8

The latest available release of the stable channel is the servicing release 0.8.2.

Version 0.8.2

This is a servicing release of the Windows App SDK that includes more critical bug fixes for the 0.8.0 release.

Bug fixes

  • Windows App SDK and WinUI 3 are now supported in Visual Studio 2022 Preview 2 and above.
  • For .NET apps, you may receive the following error when passing in an array of enums: Object contains non-primitive or non-blittable data.
  • Writing using the HandWriting Panel inside a textbox causes a crash
  • Icons/images always load at their 100% scale value rather than based on the monitor scale value
  • Garbage collection of EventSource<T> causes subsequent failure to unsubscribe handlers (see GitHub issue for more details)
  • Security fix – see CVE-2021-34533 for more details.
  • SwapChainPanel.CompositionScaleChanged sometimes returning incorrect CompositionScale values after changing display scale

The limitations and known issues for version 0.8 also apply to version 0.8.2, unless marked otherwise in the section below.

Version 0.8.1

This is a servicing release of the Windows App SDK that includes a few critical bug fixes for the 0.8.0 release.

Bug fixes

  • Windows App SDK cannot run on the latest Windows Insider build
  • Crash in EditableComboBox when entering a value that does not appear in dropdown
  • WebView2 doesn't allow user to tab out once focused has been received
  • Fully qualify Windows.Foundation.Metadata.DefaultOverload namespace in WinUI generated code to avoid namespace ambiguity
  • Security fix – see CVE-2021-34489 for more details.

The limitations and known issues for version 0.8 also apply to version 0.8.1, unless marked otherwise in the section below.

Version 0.8.0

New features and updates

This release supports all stable channel features.

WinUI 3

This release includes many bug fixes and improved stabilization across WinUI 3. These are all of the new changes in WinUI 3 since the release of WinUI 3 - Project Reunion 0.5:

  • The Pivot control has been added back in and can now be used in any WinUI 3 app.

  • All bug fixes from Project Reunion v0.5.5, v0.5.6, and v0.5.7 are included with this release.

  • New bug fixes, including:

    • Mouse right-click in TextBox crashes the application
    • NavigationView causes crash in UWP, Reunion 0.5 Preview
    • ProgressBar doesn't show difference between Paused and Error option
    • Crash in RichEditBox when copying/pasting/changing text style
    • Window caption buttons are misplaced when SetTitleBar is not set or null

    For the full list of bugs addressed in this release, see our GitHub repo.

  • The ColorHelper.ToDisplayName API is no longer available.

  • The following types have been removed:

    • Microsoft.Graphics.IGeometrySource2D
    • Microsoft.Graphics.IGeometrySource2DInterop

    Use Windows.Graphics.IGeometrySource2D and Windows.Graphics.IGeometrySource2DInterop instead.

  • All types in the Microsoft.System namespace have been moved to the Microsoft.UI.Dispatching namespace, including the DispatcherQueue class.

  • The AcrylicBrush.BackgroundSource property has been removed, since HostBackdrop is not supported as a BackgroundSource in WinUI 3.

For more information on WinUI, see Windows UI 3 Library (WinUI).

To see WinUI 3 controls and features in action, you can clone and build the WinUI 3 Controls Gallery app from GitHub, or download the app from the Microsoft Store.

To get started developing with WinUI, check out the following articles:

DWriteCore

This release of DWriteCore includes the following new and updated features. DWriteCore is introduced and described in the DWriteCore overview.

Note

DWriteCoreCreateFactory is functionally the same as the DWriteCreateFactory function exported by the system version of DirectWrite. The DWriteCore function has a different name to avoid ambiguity in the event that you link both DWriteCore.lib and DWrite.lib.

For DWriteCore and DirectWrite API reference, see DWriteCore API Reference and DirectWrite API Reference.

MRTCore

  • The Build Action for resources is automatically set when you add the resource to your project, reducing the need for manual project configuration.

Limitations

  • This release is not currently supported on the Dev Channel of the Windows Insider Program. This is fixed in version 0.8.1.

  • Desktop apps (C# .NET 5 or C++ desktop): This release is supported for use only in desktop apps (C++ or C# with .NET 5) that are packaged using MSIX. To use the Windows App SDK in unpackaged desktop apps, you must use the experimental release channel.

  • UWP apps: This release is not supported for UWP apps that are used in production environments. To use the Windows App SDK in UWP apps, you must use the experimental release channel.

Known issues

  • WinUI 3 tooling such as Live Visual Tree, Live Property Explorer, and Hot Reload in version 0.8 and later requires Visual Studio 2019 16.11 Preview 3 or later.

  • Apps currently using WinUI 3 and the Windows App SDK 0.8 cannot use class libraries that use Project Reunion 0.5. Update the class libraries to use the Windows App SDK 0.8.

  • .NET apps must target build 18362 or higher: Your TFM must be set to net5.0-windows10.0.18362 or higher, and your packaging project's must be set to 18362 or higher. For more info, see GitHub issue #921.

  • You may encounter a crash when switching frequently between light and dark mode.

  • For .NET apps, you may receive the following error when passing in an array of enums: Object contains non-primitive or non-blittable data. This is fixed in version 0.8.2.

  • For .NET apps, there is currently no way to opt out of an image getting indexed as an app resource using the Visual Studio UI. To work around this, add a Directory.Build.targets (see Customize your build - Visual Studio for instructions) to the project and remove the image(s) as follows:

    • To remove specific images (note that the relative path is needed):

      <Project> 
      <ItemGroup> 
          <Content Remove="..\Bitmap1.bmp" />
      </ItemGroup>
      </Project>
      
    • To remove images based on metadata:

      <Project>
      <ItemGroup>
          <Content Remove="@(None->WithMetadataValue('Pack','true'))" />
      </ItemGroup>
      </Project>
      

    A fix for this issue is planned for an upcoming release - at that point, the above workarounds will no longer be needed.

Version 0.5

The latest available servicing release is 0.5.7.

New features and updates

This release supports all stable channel features.

Known issues and limitations

This release has the following limitations and known issues:

  • Desktop apps (C# .NET 5 or C++ desktop): This release is supported for use only in desktop apps (C++ or C# with .NET 5) that are packaged using MSIX. To use the Windows App SDK in unpackaged desktop apps, you must use the experimental release channel.
  • UWP apps: This release is not supported for UWP apps that are used in production environments. To use the Windows App SDK in UWP apps, you must use a release from the experimental release channel.
  • .NET apps must target build 18362 or higher: Your TFM must be set to net5.0-windows10.0.18362 or higher, and your packaging project's <TargetPlatformVersion> must be set to 18362 or higher. For more info, see the known issue on GitHub.