Releases: microsoft/WindowsAppSDK
2.1 Experimental 8 (2.1.4-experimental8) 🧪
Windows App SDK 2.1.4-Experimental8 (2.1.4-experimental8) 🧪
Windows App SDK 2.1 Experimental 8 ships alongside Windows App SDK 2.1.3 stable. It generally brings forward the changes in 2.1.3 (TitleBar custom drag-region APIs, the Phi Silica LoRA API on the stable surface, AICapabilities.HasAICapability, expanded Windows ML execution-provider support, ONNX Runtime 1.24.6, and the 2.1.3 bug fix batch) and adds one experimental-only refinement to the Phi Silica structured JSON output API.
What's new in WinAppSDK 2.1 Experimental 8:
- Strongly typed result and status for structured JSON responses [Experimental].
LanguageModelExperimental.GenerateStructuredJsonResponseAsync(introduced in 2.0 Experimental 7) now returns a dedicatedGenerateStructuredJsonResponseResulttype with aGenerateStructuredJsonResponseStatusproperty, instead of the genericLanguageModelResponseResult/LanguageModelResponseStatuspair. The new status enum is specific to schema-constrained generation: it includes aResponseInvalidJsonvalue for cases where the model output did not satisfy the requested JSON schema, separate from generic language-model response failures. - As part of that split, the
ResponseInvalidJsonvalue has been removed from the stableLanguageModelResponseStatusenum. Apps that handledResponseInvalidJsonfromLanguageModelResponseStatusshould move that handling onto the newGenerateStructuredJsonResponseStatusreturned byGenerateStructuredJsonResponseAsync.
Brought forward from 2.1.3 stable
This experimental release also rolls forward the 2.1.3 stable changes, including the new TitleBar custom drag-region APIs, the Phi Silica LoRA API on the stable surface, AICapabilities.HasAICapability, the Windows ML execution-provider improvements, the ONNX Runtime 1.24.6 bump, and the full 2.1.3 bug fix batch. See the Windows App SDK 2.1.3 release notes for details.
To see everything that's new and changed, see the full Windows App SDK 2.1 Experimental 8 release notes.
Try it out
- Download the 2.1.4-experimental8 NuGet package to use WinAppSDK 2.1 Experimental 8 in your app.
Getting Started
To get started using Windows App SDK to develop Windows apps, check out the following documentation:
Windows App SDK 2.1.3
Windows App SDK 2.1.3
Windows App SDK 2.1.3 is the latest stable servicing release on the 2.x line, with new TitleBar drag-region APIs in WinUI, the LoRA API for Phi Silica promoted to the stable surface, a new Copilot+ PC detection API, expanded Windows ML execution-provider support, an ONNX Runtime update, and a batch of reliability fixes.
What's new in WinAppSDK 2.1.3:
- TitleBar custom drag regions.
TitleBarnow recursively walksTitleBar.Contentand automatically excludes interactive controls from the drag region while keeping empty gaps draggable by default. Three new APIs (TitleBar.IsDragRegionattached property,TitleBar.AutoRefreshDragRegions, andTitleBar.RecomputeDragRegions()) give developers explicit control when the default behavior isn't sufficient. See PR microsoft/microsoft-ui-xaml#10936 and tracking issue microsoft/microsoft-ui-xaml#10421. - Phi Silica LoRA API on the stable surface. Developers can now fine-tune the on-device Phi Silica language model with their own LoRA adapters from the stable API surface, using
LanguageModelLowRankAdapter.CreateFromPathandLanguageModelOptions.LowRankAdapter. See Phi Silica LoRA for details. - AICapabilities.HasAICapability is a new API that lets third-party applications determine whether the device is a Copilot+ PC.
- Windows ML execution-provider improvements. This release adds support for multiple execution providers within a single MSIX package, discovery of execution providers delivered as framework packages, and a new selection mode for more flexible deployment configurations.
- The version of ONNX Runtime has been updated to 1.24.6.
Bug fixes:
| Bug Fix | Runtime Compatibility Change |
|---|---|
Fixed a memory leak in ItemsRepeater where recycled elements were never garbage collected due to a reference cycle through the RecyclePool, which could also cause crashes in InvalidateChildrenMeasure. |
ItemTemplateWrapper_RecyclePoolLeak |
Fixed a crash where an implicit Show/Hide animation completion callback could access a destroyed CUIElement, causing an access violation. The callback now uses a weak reference to safely handle the case where the element is destroyed before the animation completes. |
Animation_FixImplicitHideAnimationCrash |
Fixed an issue where windowed popup content opened in a XAML Island did not respect OverrideScale, causing content to appear oversized and clipped. See GitHub issue microsoft/microsoft-ui-xaml#11000. |
Popup_WindowedPopupOverrideScale |
Fixed a fail-fast crash caused by re-entrant dispatch during cross-apartment COM release operations in UIAffinityReleaseQueue::DoCleanup. |
UIAffinityReleaseQueue_PauseDispatchDuringCleanup |
Fixed ambiguous module lookup in WinUI when multiple modules with the same name are loaded in the same process. GetModuleHandleW has been replaced with GetModuleHandleExW so the correct module is resolved by address. |
GetModuleHandle_FixAmbiguousModuleLookup |
Fixed an integer divide-by-zero crash in UniformGridLayout::GetMajorSize when an ItemsRepeater is laid out in an available width narrower than one item's minor stride. |
UniformGridLayout_GetItemsPerLineDivideByZero |
| Fixed a potential crash when a package has been uninstalled prior to being processed. | PackageManager_FixCrash |
Fixed an issue where GetReadyState could return incorrect error codes (for example, DisabledByUser or NotSupportedOnCurrentSystem) when required packages were not yet deployed. The API now correctly reports NotReady in this scenario, improving diagnostic clarity. |
ModelInitialization_GetReadyStateAvailabilityGuard |
Fixed an issue where XAML compiler errors were silently lost when using dotnet build, showing only MSB3073: exited with code 1 instead of the actual error messages. See GitHub issue microsoft/microsoft-ui-xaml#9813. |
N/A, build-time XAML compiler tooling change |
To see everything that's new and changed, see the full Windows App SDK 2.1.3 release notes.
Try it out
- Download the 2.1.3 NuGet package to use WinAppSDK 2.1 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:
Windows App SDK 1.8.8 (1.8.260508005)
WinAppSDK 1.8.8 is the latest stable servicing release for 1.8, focused on reliability and developer-experience fixes across XAML, package management, Windows AI, and the build-time NuGet tooling.
Bug fixes:
| Bug Fix | Runtime Compatibility Change |
|---|---|
Fixed an issue where windowed popup content opened in a XAML Island did not respect OverrideScale, causing content to appear oversized and clipped (microsoft/microsoft-ui-xaml#11000). |
Popup_WindowedPopupOverrideScale |
Fixed an ACCESS_VIOLATION crash in RenderTargetBitmap.RenderAsync that occurred when the target element left the visual tree (for example, a popup closing) before the capture completed. |
RTB_CancelRenderOnTreeLeave |
| Fixed a potential crash in package management when a package was uninstalled prior to being processed. | PackageManager_FixCrash |
Fixed an issue where GetReadyState could return incorrect error codes when required Windows AI packages were not yet deployed. The API now correctly reports NotReady, improving diagnostic clarity and reducing false-positive failure signals in telemetry. |
ModelInitialization_GetReadyStateAvailabilityGuard |
Improved internal performance diagnostics for LanguageModel.GenerateResponseAsync to better identify sources of latency before the first token is returned. |
LanguageModelInsights_GetPartialResultLatency |
Fixed a fail-fast crash caused by re-entrant dispatch during cross-apartment COM release operations in UIAffinityReleaseQueue::DoCleanup. |
UIAffinityReleaseQueue_PauseDispatchDuringCleanup |
Fixed an issue where Microsoft.Windows.Workloads.dll failed to load on Windows builds prior to 22000 due to static imports of Dynamic Dependencies APIs unavailable on those OS versions. The functions are now resolved dynamically; failures on unsupported OS versions surface as a normal HRESULT instead of a loader error dialog. |
PackageDependency_ResolveDynamically |
Fixed an issue where XAML compiler errors were silently lost when using dotnet build, showing only MSB3073: exited with code 1 instead of the actual error messages (microsoft/microsoft-ui-xaml#9813). |
N/A (build-time tooling change) |
Fixed a design issue in the WinAppSDK NuGet .targets files where %(PreprocessorDefinitions) references inside MSBuild <Target> blocks triggered task batching, causing the same auto-initializer source file to be added to ClCompile multiple times and producing duplicate .obj outputs (MSB8027 / LNK4042 warnings). Definitions are now set via <ItemDefinitionGroup>. An opt-out property (WindowsAppSDK_Arm64EcCompilerWorkaround) is included for ARM64EC+LTCG builds (microsoft/WindowsAppSDK#5395). |
N/A (build .targets change) |
To see everything that's new and changed, see the full Windows App SDK 1.8.8 release notes.
Try it out
- Download the 1.8.260508005 NuGet package to use WinAppSDK 1.8 in your app.
Getting started
To get started using Windows App SDK to develop Windows apps, check out the following documentation:
Windows App SDK 2.0 (2.0.1) 🎉
WinAppSDK 2.0 is the next major release of the Windows App SDK, the first major version update since 1.0 (November 2021) and the first release on the new Semantic Versioning scheme. It ships new XAML capabilities, a modernized Storage Pickers surface, expanded popup and anchoring APIs in Microsoft.UI.Content, a new package deployment and validation framework, a refactored Windows ML stack, and additions across the Windows AI surface.
What's new in WinAppSDK 2.0:
- Semantic Versioning. Windows App SDK 2.0 standardizes on SemVer 2.0.0 and aligns the SDK version with the NuGet package version, so there's no separate date-based build number to track. The package family name now aligns with the major version, so the next side-by-side release will be 3.0.0.
- WebView2 (WinUI 3) drag support. Dragging text, HTML, images, and URLs out of WebView2 content hosted in WinUI 3 is now supported, along with drag cancellation, custom drag visuals, and customizable drag data. (Requires WebView2 Runtime 144.0.3719.11 or higher.)
- Package deployment and validation. The
Microsoft.Windows.Management.Deploymentnamespace adds a newIPackageValidatorframework with three built-in validators (PackageCertificateEkuValidator,PackageFamilyNameValidator,PackageMinimumVersionValidator), plus a newPackageVolumeAPI for managing the storage volumes that packages are staged onto. - Windows ML refactor. Core Windows ML features have been refactored into a new base package,
Microsoft.Windows.AI.MachineLearning, with a minimal set of dependencies that supports apps down to Windows 10 v1903. The existingMicrosoft.WindowsAppSDK.MLpackage continues to support Windows 10 v1809. The included ONNX Runtime version has been updated to 1.24.5. - Windows AI additions. New
AIFeatureReadyStatevalues (CapabilityMissing,NotCompatibleWithSystemHardware,OSUpdateNeeded) help apps explain transient and durable failures during AI model acquisition so users get actionable guidance instead of a generic "not ready" condition. Phi Silica APIs are now enforced as part of a Limited Access Feature (LAF); see Phi Silica for details. - Storage Pickers updates. The
Microsoft.Windows.Storage.PickersAPI (introduced in 1.8) is extended with file type choice grouping, persistent settings identifiers, suggested start folders, custom titles, multi-folder picking, and more, acrossFileOpenPicker,
FileSavePicker, andFolderPicker. SystemBackdropElementis a new lightweightFrameworkElementthat lets apps place a system backdrop such as Mica or Acrylic anywhere within the XAML layout, with aCornerRadiusproperty for rounded backdrop areas. It closes a long-standing WinUI 3 gap where in-app acrylic effects (previously straightforward in WinUI 2 viaAcrylicBrush.BackgroundSource) had no direct equivalent.- Custom XAML Conditionals (
IXamlCondition) enable developers to define custom conditions that integrate with XAML's conditional namespace syntax and are evaluated at XAML parse time. This replaces the experimentalIXamlPredicateinterface and unlocks conditional XAML based on feature flags, device capabilities, business logic, configuration settings, and other runtime conditions. - Relative popup positioning in
Microsoft.UI.Content. The newPopupAnchorAPI allowsDesktopPopupSiteBridgeto anchor to its owning window or island instead of being limited to absolute screen coordinates, with newAnchoringBehaviorandAnchoringPixelAlignmentproperties to control the behavior.
Notable bug fixes:
- Fixed an issue where the WindowsAppSDK installer showed no progress during installation, making it appear stalled. The installer now provides clearer progress feedback.
- Fixed
MSB8027andLNK4042build warnings caused by duplicateClCompileitems in Windows App SDK NuGet.targetsfiles. - Fixed a ListView crash that could occur during keyboard navigation (Tab/Shift+Tab) after the items list was updated.
- Fixed an issue where WinUI 3 could crash if focus was moved to the
CoreWebView2Controllerwhile the controller was not visible. - Fixed a Windows ML bug where calling
RegisterCertifiedAsyncagain in the same process incorrectly returned 0 execution providers (EP).
To see everything that's new and changed, including upgrade guidance and known issues, see the full Windows App SDK 2.0 release notes.
Try it out
- Download the 2.0.1 NuGet package to use WinAppSDK 2.0 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:
Windows App SDK 1.8.7 (1.8.260416003)
WinAppSDK 1.8.7 is the latest stable servicing release for 1.8, with two new additive APIs for Windows AI scenarios, expanded NPU hardware support, an ONNX Runtime update, and a batch of reliability fixes.
What's new in WinAppSDK 1.8.7:
- AICapabilities.HasAICapability is a new API that lets third-party applications determine whether the device is a Copilot+ PC.
- AIFeatureReadyResult.PackageInstallationFailed is a new value that lets apps detect when an
EnsureReadyAsyncfailure was caused by a known install condition (such as a network failure, Windows Update error, or low disk space), so apps can handle expected install failures differently from genuine errors. - Expanded NPU hardware support. Windows ML NPU detection has been centralized to support new and upcoming NPU hardware types without requiring client application updates.
- The version of ONNX Runtime has been updated to 1.23.5.
Bug fixes:
| Bug Fix | Runtime Compatibility Change |
|---|---|
Fixed a crash in Windows AI LanguageModel APIs that could occur when an exception was encountered during input processing. |
LanguageModel_ProcessingFix |
Fixed ImageDescription.DescribeAsync failing with InternalError when called concurrently from multiple threads. |
ImageDescription_ConcurrencyFix |
Fixed an issue where content moderation error codes from LanguageModel APIs could be silently overwritten by subsequent errors, preventing callers from receiving the correct content safety signals. |
LanguageModel_ContentErrorHandlingFix |
| Fixed an issue where the touch keyboard would not appear in XAML island scenarios (such as File Explorer) after using touch elsewhere in the app. | InputPointerSource_TouchKeyboardInvocationFix |
Fixed a ListView crash (E_BOUNDS in Selector::OnGettingFocus) that could occur during keyboard navigation (Tab/Shift+Tab) after the items list was updated. |
ListViewSelector_FixFocusedIndex |
| Fixed a crash that may occur on certain devices when active touch contacts are canceled by input hardware, such as when pen input overrides them. | InputPointerSource_PointerCancelCrashFix |
| Improved diagnosability for Windows AI model initialization telemetry. | ModelInitialization_Activities |
| Improved diagnosability for Windows ML APIs. | WindowsML_DiagnosabilityFix |
To see everything that's new and changed, see the full Windows App SDK 1.8.7 release notes.
Try it out
- Download the 1.8.260416003 NuGet package to use WinAppSDK 1.8 in your app.
Getting started
To get started using Windows App SDK to develop Windows apps, check out the following documentation:
2.0 Experimental 7 (2.0.0-experimental7) 🧪
Windows App SDK 2.0-Experimental7 (2.0.0-experimental7) 🧪
Windows App SDK 2.0 Experimental 7 is the latest experimental release, headlined by experimental CMake support for
C++ developers and rolling forward all changes from 2.0-Preview1 and 2.0-Preview2 alongside additional experimental
work.
What's new in WinAppSDK 2.0 Experimental 7:
- CMake support [Experimental] for consuming Windows App SDK from C++ CMake-based projects. Each Windows App SDK NuGet component now embeds a CMake configuration file so that
find_package()can automatically discover targets, headers, libraries, and runtime DLLs without manual path configuration. This is an early flight to gather community feedback, so naming conventions and configuration patterns may change based on developer input. See the full release notes for the overview, sample apps, and how to share feedback. - Windows AI Language Model API additions for generating structured JSON output and other scenarios.
- App Content Indexer API additions including new APIs for managing content items and indexing status.
- Video Super Resolution (VSR) API rename pass for clarity and consistency, plus various bug fixes and quality
improvements. - Brings forward all changes shipped in 2.0-Preview1 and 2.0-Preview2, including new
Microsoft.Windows.Management.Deployment(PackageVolume,IPackageValidator) andMicrosoft.Windows.Storage.Pickers(custom dialog titles, persistent settings, multi-folder picker, and more) APIs.
Bugs fixed:
- Fixed
ImageDescription.DescribeAsyncfailing withInternalErrorwhen called concurrently from multiple threads. - Various bug fixes and quality improvements in Video Super Resolution.
- Bug fixes brought forward from 2.0-Preview1 and 2.0-Preview2.
To see everything that's new and changed, see the full Windows App SDK 2.0 Experimental release notes.
Try it out
- Download the 2.0.0-experimental7 NuGet package to use WinAppSDK 2.0 in your app.
- For CMake, see the CMake samples for end-to-end configuration across all four deployment scenarios (SelfContained|FrameworkDependent x Packaged|Unpackaged).
Getting Started
To get started using Windows App SDK to develop Windows apps, check out the following documentation:
Windows App SDK 1.8.6 (1.8.260317003)
Windows App SDK 1.8.6 (1.8.260317003)
WinAppSDK 1.8.6 is the latest stable version of WinAppSDK 1.8 providing new features and improvements to the platform.
Whats new in WinAppSDK 1.8.6:
- New SplitMenuFlyoutItem control is designed to provide a split button experience within a menu flyout.
- Windows ML can now be used from C++ projects using CMake.
- The version of ONNX Runtime has been updated to 1.23.4.
Bug fixes:
| Bug Fix | Runtime Compatibility Change |
|---|---|
Fixed a pointer arithmetic issue in the app-instance activation-redirection shared-memory queue that could cause incorrect behavior when using AppInstance.RedirectActivationTo. |
AppLifecycle_SharedMemoryRedirectionQueueFix |
| Fixed an issue in the deployment manager where activity data was being incorrectly reset during package installation and license operations. | DeploymentManager_ActivityCollectionFix |
| Improved diagnosability for Text Intelligence APIs used in Windows AI scenarios. | TextIntelligence_Insights |
Fixed a visual alignment issue with AppBarToggleButton in CommandBarFlyout secondary commands. |
N/A |
Try it out
- Download the 1.8.260317003 NuGet package to use WinAppSDK 1.8.6 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:
2.0 Experimental 6 (2.0.0-experimental6) 🧪
Windows App SDK 2.0-Experimental6 (2.0.0-experimental6)
WinAppSDK 2.0.0 Experimental 6 is the latest experimental version of WinAppSDK providing new features and improvements to the platform.
What's new in WinAppSDK 2.0 Experimental 6:
- The version of ONNX Runtime has been updated to 1.24.2.
NPUPowerModehas been deprecated in favor of newer power management APIs.GetReadyStatenow gracefully returnsNotSupportedwhen the session broker is unavailable, instead of throwing an exception.- Added NV12 output format support for Video Super Resolution.
- Improved
DeleteIndexreliability. - App Content Search are part of a separate
Microsoft.Windows.Searchpackage instead of being part ofMicrosoft.Windows.AI package.
Bugs fixed:
- Fixed
ImageDescription.DescribeAsyncfailing withInternalErrordue to a race condition - Fix for OCR Bounding boxes returning negative values in some edge cases.
To see everything that's new and changed, see the full Windows App SDK 2.0 Experimental release notes.
Try it out
- Download the 2.0.0-experimental6 NuGet package to use WinAppSDK 2.0 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:
Windows App SDK 1.7.9 (1.7.260224002)
Windows App SDK 1.7.9 (1.7.260224002)
WinAppSDK 1.7.9 is the latest stable version of WinAppSDK 1.7 providing new features and improvements to the platform. To see everything that's new and changed, see the full Windows App SDK 1.7.9 release notes.
What's new in WinAppSDK 1.7.9:
- N/A
Bug fixes:
| Bug Fix | Runtime Compatibility Change |
|---|---|
| Fixed a pointer arithmetic issue in the app-instance activation-redirection shared-memory queue that could cause incorrect behavior when using AppInstance.RedirectActivationTo | AppLifecycle_SharedMemoryRedirectionQueueFix |
| Fixed an issue in the deployment manager where activity data was being incorrectly reset during package installation and license operations. | DeploymentManager_ActivityCollectionFix |
Try it out
- Download the 1.7.260224002 NuGet package to use WinAppSDK 1.7.9 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:
Fixed a pointer arithmetic issue in the app-instance activation-redirection shared-memory queue that could cause incorrect behavior when using AppInstance.RedirectActivationTo. (RuntimeCompatibilityChange: AppLifecycle_SharedMemoryRedirectionQueueFix)
Fixed an issue in the deployment manager where activity data was being incorrectly reset during package installation and license operations. (RuntimeCompatibilityChange: DeploymentManager_ActivityCollectionFix)
2.0 Preview 1 (2.0.0-Preview1) 🔃
2.0 Preview 1 (2.0-preview1) 🔃
The first preview of WinAppSDK 2.0 is now available! Check out the release notes for more information on the new & updated features and known issues.
Updates to this version:
-
Updated ONNX Runtime version to 1.24 RC.
-
New
InputFocusController.ShouldShowKeyboardCuesproperty to guide developers on whether to show keyboard cues right after the creation of aContentIsland. -
New convenience API
PointerPoint.GetCurrentPoint, to allow developers to get the activePointerPointdata from the providedpointerId. -
Improved
DeleteIndexreliability. SometimesDeleteIndexwould fail with ERROR_SHARING_VIOLATION. -
App Content Search are part of a separate
Microsoft.Windows.Searchpackage instead of being part ofMicrosoft.Windows.AI package. -
New
AppContentIndexerAPIs and renamedAppContentIndexerAPIs.
Bugs fixed in the new WinAppSDK Release:
- Fix for prefix search not working with short query strings.
- Fix for OCR Bounding boxes returning negative values in some edge cases.
- Fixed bug where if
RegisterCertifiedAsyncis called again in the same process, it incorrectly returns 0 execution providers (EP). - Fixed an issue where the WindowsAppSDK installer showed no progress during installation, making it appear stalled. The installer now provides clearer progress feedback.
- Improved error handling of scenarios where WindowsAppSDKSelfContained is enabled for class libraries.
Providing feedback
As we introduce new & upcoming features in our preview releases, we appreciate all of your feedback as we work towards a stable release:
- For WinUI 3 feedback, please open an issue on the WinUI repo.
- For feedback regarding all other Windows App SDK components, please open an issue here, on the Windows App SDK repo.