NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #2586 most downloaded on NuGet
C++/WinRT is a standard C++ language projection for the Windows Runtime implemented solely in header files. It allows you to both author and consume Windows Runtime APIs using any standards-compliant C++ compiler. C++/WinRT is designed to provide C++ developers with first-class access to the modern Windows API.
Last release 1 months ago
19 Aug 2026
Release timing varies
gaps range from 2 weeks to 1.1 years
Rarely documented
notes for 10 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
142 releases · first in 2018
Fix race condition in cancellation setup/teardown by Raymond Chen (@oldnewthing) in #1609
Full Changelog: 3.0.260715.1...3.0.260818.1
base_identity.h: added missing constexpr by Mathias Berchtold (@matbech) in #1589
One column per quarter.
Full Changelog: 3.0.260520.1...3.0.260715.1
Major additions and breaking changes
In addition to the usual bugfixes and enhancements, this first 3.0 release contains two major updates: support for C++20 modules, and support for deprecated pre-standard coroutines has been removed.
C++/WinRT has removed support for the pre-standard coroutines via the /await compiler option and the <experimental/coroutine> header. This aligns with the new behavior in the MSVC Build Tools 14.50 (shipping in Visual Studio 2026) that officially deprecated /await, and will soon deprecate the experimental headers. Standard coroutines are available by default starting in C++20, or if you are still on C++17, use /await:strict.
If your existing projects are using the Nupkg support out of the box and have not manually added /await, you probably won't have to change anything, as we've updated the default behavior in Microsoft.Windows.CppWinRT.targets to use /await:strict when building with C++17. If for some reason, you need to override this default behavior in the targets file, you can set CppWinRTEnableCpp17Coroutines to false to prevent it from auto-setting /await:strict.
Full module support has finally arrived to C++/WinRT! Replace
#include <winrt/Windows.Foundation.h>with
import winrt.Windows.Foundation;and rejoice!
This brings potential improvements in build speed, disk space, and memory usage, particularly for large projects using Xaml projections, and starts to isolate more of the internal C++/WinRT implementation details from the consumer side. Test-driving this work on a quick and dirty prototype fork of Windows Terminal yielded a 10-15% build speed improvement (22 minutes before, 19 minutes after), and a reduction in disk space from 30GB down to 18GB.
If you've ever used C++/WinRT with Windows.UI.Xaml.*, you've probably moved those headers into your precompiled header (PCH), but then saw your PCH consume well upwards of 1-2GB of disk space per vcxproj, per flavor. In the Terminal prototype, taking these headers out of the PCH and replacing them with a single cppwinrt module, built once and shared between projects, the PCHs shrunk by upwards of 80%, and the time to build each PCH went from ~40 seconds down to ~5 seconds. The single prebuilt cppwinrt modules carried all of the types for the entire Windows.* namespaces and WinUI, and still consumed only 700MB, and took ~80-90 seconds to build. Excluding unused namespaces from the module build can lower those numbers even further. The Terminal prototype didn't do this, and still enjoyed immediate wins on disk space, and the build time wins broke even after converting about 2-3 projects out of the ~15 or so that use C++/WinRT.
As part of this large effort, we no longer generate the old monolithic module interface file winrt.ixx, but instead generate a module interface .ixx file for each WinRT namespace. There is more documentation at nuget/modules/md to help get you started.
Full Changelog: 2.0.250303.1...3.0.260520.1
Use actions/cache@v4 by Josh Soref (@jsoref) in #1411
actions/cache@v4 by Josh Soref (@jsoref) in #1411observable_map_base::call_changed to protected by Felix Patschkowski (@Patschkowski) in #1425<exception> to base_includes.h by Michael Maltsev (@m417z) in #1427Full Changelog: 2.0.240405.15...2.0.250303.1
d2a6677 Remove references to stale winmd files to fix incremental builds
This list of changes was auto generated.
25a14f8 Update build.yml for Azure Pipelines ( #1384 ) [ #1338 ]
resume_agile to allow coroutine to resume in any apartment (#1356)shared_ptr and weak_ptr (#1330)This list of changes was auto generated.
297454e Allow classic COM interfaces with get_self ( #1314 ) [ #1312 ]
This list of changes was auto generated.
0e740b1 Update issue template to use cpp instead of rust
4587264 Remove explicitly setting PreferredToolArchitecture, since VS 2022 handles this more comprehensively
capture support for unconventional result types (#1301)This list of changes was auto generated.
Stack usage reduction in apartment switching, and lifetime fixes by Raymond Chen (@oldnewthing) in #1272
Full Changelog: 2.0.230207.1...2.0.230225.1
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →