Windows App SDK 2.3.1
Windows App SDK 2.3.1 is the latest stable release on the 2.x line, with a new structured JSON output API for Phi Silica, the XamlOptionalChanges API for opting into XAML breaking changes, an unstable CompositionEngine Limited Access Feature, Video Super Resolution improvements, ARM64EC support for Windows ML, a broad set of XAML performance optimizations, and a batch of reliability fixes.
What's new in WinAppSDK 2.3.1:
- Structured JSON output for Phi Silica. The new
LanguageModel.GenerateStructuredJsonResponseAsyncAPI generates language-model responses constrained to a caller-supplied JSON Schema, so apps get well-formed, schema-conformant output instead of free-form text they have to parse themselves. XamlOptionalChanges. A new API that lets apps opt into optional breaking changes before XAML initialization. In the same release, theDISABLE_XAML_GENERATED_MAINpreprocessor constant now renames the generatedmain()method (C#:XamlGeneratedProgram.XamlGeneratedMain(); C++/WinRT:wXamlGeneratedMain()) instead of removing it, so a custommain()can invoke the default implementation. See PR microsoft/microsoft-ui-xaml#11110.CompositionEngine(Limited Access Feature). A new, unstable Limited Access Feature that lets apps opt into using the OS as the engine for the Composition APIs.- Video Super Resolution improvements. Fixed NPU detection, added CPU support, and improved performance for Video Super Resolution.
- Windows ML: ARM64EC support. Windows ML now supports ARM64EC, alongside a fix to execution-provider enumeration in certain scenarios.
- XAML performance optimizations. This release adds a broad set of startup, styling, and resource-lookup optimizations. Several are opt-in through the
DefaultStyleOptimizationsandOptimizeApplyStylesXamlChangeIds, including optimizedXamlControlsResourcesstyles, a lighterFontIcon/BitmapIconvisual tree, and fasterThemeResourceandResourceDictionarylookups. - AI IntelliSense documentation. Added IntelliSense documentation for the stable APIs in the
Microsoft.WindowsAppSDK.AINuGet package.
Bug fixes:
| Bug Fix | Runtime Compatibility Change |
|---|---|
Fixed ApplicationData.GetForUnpackaged().LocalSettings() opening a registry key at a roaming path (HKCU\SOFTWARE\publisher\product) instead of a machine-local one, so unpackaged app settings now persist in the correct location. See GitHub issue microsoft/WindowsAppSDK#6559. |
ApplicationData_GetForUnpackaged_LocalSettings |
Fixed a crash that could repeatedly bring down backgroundTaskHost.exe when a background task had no stored CLSID, and added graceful handling when CoCreateInstance fails. See GitHub issue microsoft/WindowsAppSDK#5870. |
UniversalBGTask_RunCrash |
| Fixed windowed and non-windowed flyouts appearing misaligned (about one item-height above the parent item) for side placements when they open upward near the bottom of the screen. | Flyout_SidePlacementFlipUpAlignmentFix |
Fixed a crash in MediaPlayerPresenter when the GPU device is lost during media playback event handling. |
MediaPlayerPresenter_DeviceLostCrash |
Fixed a use-after-free crash in CPopupRoot::ReplayPointerUpdate when a popup is closed synchronously during pointer-event replay. |
CPopupRoot_ReplayPointerUpdateCrash |
Fixed a crash (null LayoutState dereference) in UniformGridLayout and FlowLayout that could occur when a collection change was raised on an ItemsRepeater that was no longer loaded. |
UniformGridLayoutFlowLayout_OnItemsChangedNullLayoutStateCrash |
To see everything that's new and changed, see the full Windows App SDK 2.3.1 release notes.
Try it out
- Download the 2.3.1 NuGet package to use WinAppSDK 2.3 in your app.
- Download and update the WinUI Gallery to see the WinUI 3 updates firsthand.
Getting started
To get started using Windows App SDK to develop Windows apps, check out the following documentation: