Releases: microsoft/CsWinRT
CsWinRT v1.5.0
Release Notes
This release of C#/WinRT includes several updates to the runtime and Windows SDK projections particularly with performance. The updated Windows SDK packages are available with the .NET March SDK updates This includes .NET SDK 6.0.201, 6.0.103, 5.0.406, 5.0.212.
C#/WinRT package
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.5.0
.NET Windows SDK targeting packages:
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.22000.23
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.20348.23
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.19041.23
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.18362.23
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.17763.23
Breaking changes
This version of C#/WinRT includes AssemblyVersion changes in both the runtime and generated Windows SDK projection assemblies:
- WinRT.Runtime.dll: AssemblyVersion incremented from 1.4.0.0 to 1.5.0.0
- Microsoft.Windows.SDK.NET.dll: AssemblyVersion incremented from 10.0.xxxxx.22 to 10.0.xxxxx.23
The impact of the AssemblyVersion changes is that apps may need to update to a later version of the .NET SDK when consuming components/projections generated by this version of C#/WinRT.
Changes:
- 394ce3a Change package version variable as it got picked up as a property for the build which is not what we want. (#1103)
- 29f5b50 Fix prerelease variable getting overriden by YAML (#1102)
- 2cb0b87 Fix build status URL (#1101)
- 8bac003 Rebase over Refactor code to remove TypedObjectFactoryCacheForRuntimeClassName #1055 (#1100)
- e64e716 GUID lookup optimizations and benchmarks (#1099)
- 133204d Update sample to build projection for AnyCPU (#1098)
- 091f44d Improvements to type marshaling (#1096)
- 5e2c1df Fix issue where dispose ABI wasn't being called. (#1095)
- b01c69d Update authoring samples to .NET 6 (#1066)
- 2990b7b Switch to referencing the Windows App SDK instead of Project Reunion (#1094)
See More
- 1e4cd5e Eliminate an ObjectReference object in a couple custom types (#1090)
- a75005d More queue-time variables (#1087)
- c90d2e3 Increment assembly version due to new APIs added. (#1086)
- 8dda44d Fix warnings and namespace conflicts in embedded scenario (#1084)
- 0041d18 Reduce # of allocated objects (#1081)
- 38209f8 Improvements to nullable / boxing (#1063)
- 0b7b73f Control ADO-Maestro job using variable (#1083)
- d60484d ADO Pipeline Variables (#1080)
- bfd6846 Generic CreateMarshaler (#1079)
- 3bf2eaa Reduce allocations for generated constructors (#1075)
- e78db0e Remove idic usage from manual projections (#1068)
- 14d7c3a Fixx issue when CsWinRTInputs contains multiple items and the timestamp picks the last item instead of the most recent. (#1077)
- d1642c8 Static YML build pipeline (#1065)
- 664e218 document vs issue in NetProjectionSample (#1057)
- 31a191d Update embedded samples to 1.4.1 (#1052)
- b216a38 Update the projection sample to .NET 6 (#1054)
- 9ad6e66 Mark typed sealed where possible (#1050)
This list of changes was auto generated.
CsWinRT v1.5.0-prerelease.220124.4
Release Notes
This is a prerelease version of C#/WinRT focused on performance improvements to the runtime and projection code. The preview Windows SDK packages below can be consumed by setting the following property in your C# project file:
<WindowsSdkPackageVersion>10.0.xxxxx.23-preview</WindowsSdkPackageVersion
C#/WinRT package:
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.5.0-prerelease.220124.4
.NET Windows SDK targeting packages:
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.22000.23-preview
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.20348.23-preview
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.19041.23-preview
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.18362.23-preview
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.17763.23-preview
Breaking changes
This version of C#/WinRT includes AssemblyVersion changes in both the runtime and generated Windows SDK projection assemblies:
- WinRT.Runtime.dll: AssemblyVersion incremented from 1.4.0.0 to 1.5.0.0
- Microsoft.Windows.SDK.NET.dll: AssemblyVersion incremented from 10.0.xxxxx.22 to 10.0.xxxxx.23
The impact of the AssemblyVersion changes is that apps may need to update to a later version of the .NET SDK when consuming components/projections generated by this version of C#/WinRT.
Changes:
- c90d2e3 Increment assembly version due to new APIs added. (#1086)
- 8dda44d Fix warnings and namespace conflicts in embedded scenario (#1084)
- 0041d18 Reduce # of allocated objects (#1081)
- 38209f8 Improvements to nullable / boxing (#1063)
- 0b7b73f Control ADO-Maestro job using variable (#1083)
- d60484d ADO Pipeline Variables (#1080)
- bfd6846 Generic CreateMarshaler (#1079)
- 3bf2eaa Reduce allocations for generated constructors (#1075)
- e78db0e Remove idic usage from manual projections (#1068)
- 14d7c3a Fixx issue when CsWinRTInputs contains multiple items and the timestamp picks the last item instead of the most recent. (#1077)
See More
- d1642c8 Static YML build pipeline (#1065)
- 664e218 document vs issue in NetProjectionSample (#1057)
- 31a191d Update embedded samples to 1.4.1 (#1052)
- b216a38 Update the projection sample to .NET 6 (#1054)
- 9ad6e66 Mark typed sealed where possible (#1050)
This list of changes was auto generated.
CsWinRT v1.4.1
Release Notes
NOTE: Please see breaking change notice below, regarding dependent projections (Windows SDK and Windows App SDK). Updating to this version requires one of the following .NET SDK versions (or later): 5.0.210, 5.0.404, or 6.0.101.
This release of C#/WinRT includes several updates to the runtime and Windows SDK projections particularly with performance. This release also includes a preview of embedded support. For a detailed list of fixes and updates, refer to the Release 1.4.1 Milestone.
C#/WinRT package
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.4.1
.NET Windows SDK targeting packages:
The following updated Windows SDK packages are available in .NET SDK 5.0.210, .NET SDK 5.0.404, and .NET SDK 6.0.101. See Call Windows Runtime APIs in desktop apps for more details on using these packages.
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.22000.22
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.20348.22
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.19041.22
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.18362.22
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.17763.22
Breaking changes
This version of C#/WinRT includes AssemblyVersion changes in both the runtime and generated Windows SDK projection assemblies:
- WinRT.Runtime.dll: AssemblyVersion incremented from 1.3.0.0 to 1.4.0.0
- Microsoft.Windows.SDK.NET.dll: AssemblyVersion incremented from 10.0.xxxxx.21 to 10.0.xxxxx.22
The AssemblyVersion changes are due to the fact that this version of C#/WinRT generates new helper methods for non-exclusive interfaces which are consumed by the generated code of a type implementing that interface. The impact of the AssemblyVersion changes is that components/projections that are built using this version of C#/WinRT and that implement interfaces from another projection (e.g., the Windows SDK or WinUI projection) will need an updated version of the other projection built using this version of C#/WinRT. Otherwise, you may see errors similar to the following:
Error CS0234: The type or namespace name 'IGraphicsEffectMethods' does not exist in the namespace 'ABI.Windows.Graphics.Effects' (are you missing an assembly reference?)
Performance improvements
- Minimize usage of IDynamicInterfaceCastable: Improves performance in RCW function calls and reduces number of objects being created (#1015)
- Optimize activation factory caching to always pin for life of the process (#1021)
- Reduce cost of subscribing to events (#1027)
- Initialize generic marshaller helper functions lazily to reduce reflection code (#1001)
- Minimize
Lazy<>
usage and replace withInterlocked.CompareExchange
(#1014) - Reduce redundant activation factory lookup (#1001)
- Lazy creation of concurrent dictionaries (#1001)
- Improve activation for string operations and dictionaries (#1006)
- Cache IsWindowsRuntimeType (type marshalling improvements) (#1005)
- CreateObject microbenchmark optimizations (reduce time spent during RCW creation and improvements in drawing) (#1010)
- Dictionary lookup caching (#1033)
Additional perf improvements after 1.4.0-prerelease.211028.1:
- String marshaling optimizations (#1036)
- Improved performance for invoking events (#1042)
- GetObjectReferenceForInterface improvements (#1046)
- Reduce usage of GetRuntimeClassName (#1043)
Embedded support
This version of C#/WinRT includes a preview of embedded support. This provides support for compiling runtime and projection sources into your library/app output. For more information, refer to the docs, samples, and related issue #304 .
Bug fixes
- Issue fixed where embedded quotes in custom attributes break the projection (#1037)
- Issue fixed where second event handler not called (#626)
Changes:
- f8d506b Add copyright to WinRT sources (#1049)
- e4fa105 Correct embedded sample (#1048)
- 212b230 GetObjectReferenceForInterface improvements (#1046)
- c46e536 Remove IDIC attribute from exclusive interfaces (#1045)
- 3ec3981 Fix nuget restore error in embedded sample (#1044)
- d568019 Embedded CsWinRt Option (#1011)
- 39fbcdf reduce usage of getruntimeclassname (#1043)
- ec2966b Improve the performance of invoking events (#1042)
- 8954084 A few optimizations around string marshaling (#1036)
- 3524776 Fix writing out strings with embedded quote marks in custom attributes (#1038)
See More
- 8806f83 Link to Github discussions and update readme for contributing (#1035)
- a0b8c37 Embedded sources: cswinrt (#1009)
- 72b1236 Embedded sources: WinRT.Runtime (#1008)
- fee2cb9 Dictionary lookup caching (#1033)
- ad77248 Refactor Lazy<> uses (#1014)
- 5fac5ad Update .NET SDK versions (#1030)
- b8d4b5e Improvements to subscribing to events (#1027)
- db7a841 Fix the FastUpToDateCheck relationship between WinRT.cs and the inputs winmds. (#1026)
- 7dc015e Merge pull request #1015 from microsoft/ujjwalchadha/minimize_idic_usage
- 298ae4b cleanup
- 2378340 Merged master
- 4427779 Update nuspec tags and description
- 86f37b7 Make activation factories not weak and reduce duplicate retrieval of activation factories (#1021)
- d2fb501 Fix private class methods
- 375b8b9 Use targetframework property function (#1012)
- 51a2183 Ensure AssemblyAttributes.cs file is generated with correct TargetFrameworkAttribute (#1020)
- ee17bea Bump TestWinRT version (#1019)
- 41beec2 Fix build with VS2022 (#1017)
- 4035ab8 Convert activation and error info delegates to function pointers (#1018)
- a32c457 CreateObject microbenchmark optimizations (#1010)
- 66f4c01 Merge branch 'master' into ujjwalchadha/minimize_idic_usage
- 0b13794 Refactor code_writers
- ffb3267 projection code cleanup
- 625f534 Remove idic use from static classes
- e8a806d Call static methods from classes
- bd25372 Cache IsWindowsRuntimeType, which is expensive to read custom attributes (#1005)
- 565de2f CompareOrdinal all the things - string operations and dictionaries (#1006)
- 7c2667b Move abi calls to static classes
- a69a7ed Handle case where event source may remove event and any other added events don't fire (#997)
- 54c6bfc Perf improvements (#1001)
- c927df0 fixed a few assumptions regarding nuget cache (#1002)
This list of changes was auto generated.
CsWinRT v1.4.0-prerelease.211028.1
Release Notes
This is a prerelease version of C#/WinRT focused on performance improvements to the runtime and projection code. The preview Windows SDK packages below can be consumed by setting the following property in your C# project file:
<WindowsSdkPackageVersion>10.0.xxxxx.22-preview</WindowsSdkPackageVersion
C#/WinRT package:
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.4.0-prerelease.211028.1
.NET Windows SDK targeting packages:
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.22000.22-preview
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.20348.22-preview
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.19041.22-preview
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.18362.22-preview
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.17763.22-preview
Breaking changes
This version of C#/WinRT includes AssemblyVersion changes in both the runtime and generated Windows SDK projection assemblies:
- WinRT.Runtime.dll: AssemblyVersion incremented from 1.3.0.0 to 1.4.0.0
- Microsoft.Windows.SDK.NET.dll: AssemblyVersion incremented from 10.0.xxxxx.21 to 10.0.xxxxx.22
The AssemblyVersion changes are due to the fact that this version of C#/WinRT generates new helper methods for non-exclusive interfaces which are consumed by the generated code of a type implementing that interface. The impact of the AssemblyVersion changes is that components/projections that are built using this version of C#/WinRT and that implement interfaces from another projection (e.g., the Windows SDK or WinUI projection) will need an updated version of the other projection built using this version of C#/WinRT. Otherwise, you may see errors similar to the following:
Error CS0234: The type or namespace name 'IGraphicsEffectMethods' does not exist in the namespace 'ABI.Windows.Graphics.Effects' (are you missing an assembly reference?)
Performance improvements
- Minimize usage of IDynamicInterfaceCastable: Improves performance in RCW function calls and reduces number of objects being created (#1015)
- Optimize activation factory caching to always pin for life of the process (#1021)
- Reduce cost of subscribing to events (#1027)
- Initialize generic marshaller helper functions lazily to reduce reflection code (#1001)
- Minimize
Lazy<>
usage and replace withInterlocked.CompareExchange
(#1014) - Reduce redundant activation factory lookup (#1001)
- Lazy creation of concurrent dictionaries (#1001)
- Improve activation for string operations and dictionaries (#1006)
- Cache IsWindowsRuntimeType (type marshalling improvements) (#1005)
- CreateObject microbenchmark optimizations (reduce time spent during RCW creation and improvements in drawing) (#1010)
- Dictionary lookup caching (#1033)
Bug fixes
- Issue fixed where second event handler not called (#626)
Changes:
- fee2cb9 Dictionary lookup caching (#1033)
- ad77248 Refactor Lazy<> uses (#1014)
- 5fac5ad Update .NET SDK versions (#1030)
- b8d4b5e Improvements to subscribing to events (#1027)
- db7a841 Fix the FastUpToDateCheck relationship between WinRT.cs and the inputs winmds. (#1026)
- 7dc015e Merge pull request #1015 from microsoft/ujjwalchadha/minimize_idic_usage
- 298ae4b cleanup
- 2378340 Merged master
- 4427779 Update nuspec tags and description
- 86f37b7 Make activation factories not weak and reduce duplicate retrieval of activation factories (#1021)
See More
- d2fb501 Fix private class methods
- 375b8b9 Use targetframework property function (#1012)
- 51a2183 Ensure AssemblyAttributes.cs file is generated with correct TargetFrameworkAttribute (#1020)
- ee17bea Bump TestWinRT version (#1019)
- 41beec2 Fix build with VS2022 (#1017)
- 4035ab8 Convert activation and error info delegates to function pointers (#1018)
- a32c457 CreateObject microbenchmark optimizations (#1010)
- 66f4c01 Merge branch 'master' into ujjwalchadha/minimize_idic_usage
- 0b13794 Refactor code_writers
- ffb3267 projection code cleanup
- 625f534 Remove idic use from static classes
- e8a806d Call static methods from classes
- bd25372 Cache IsWindowsRuntimeType, which is expensive to read custom attributes (#1005)
- 565de2f CompareOrdinal all the things - string operations and dictionaries (#1006)
- 7c2667b Move abi calls to static classes
- a69a7ed Handle case where event source may remove event and any other added events don't fire (#997)
- 54c6bfc Perf improvements (#1001)
- c927df0 fixed a few assumptions regarding nuget cache (#1002)
This list of changes was auto generated.
New Contributors
- @ShashankNay made their first contribution in #847
- @jlaanstra made their first contribution in #902
- @kant2002 made their first contribution in #991
- @jkotas made their first contribution in #1018
Full Changelog: 1.2.4...1.4.0-prerelease.211028.1
CsWinRT v1.3.5
Release Notes
This release of C#/WinRT includes several updates and fixes to the runtime and Windows SDK projections, and improvements with C#/WinRT authoring scenarios. The updated Windows SDK packages are available with the .NET October Update (.NET SDK 5.0.402 and .NET SDK 5.0.208). For a detailed list of fixes and updates, refer to the Release 1.3.5 Milestone.
C#/WinRT package:
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.3.5
.NET Windows SDK targeting packages:
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.22000.21
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.20348.21
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.19041.21
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.18362.21
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.17763.21
Note: Starting with this version of C#/WinRT, we are generating packages for the Windows 11 SDK (build 22000).
Bug-fixes and Updates
C#/WinRT runtime and projection updates:
- Fixed a regression with TypeInitializationException using PointCollection in Windows App SDK 0.8.2 (#967 )
- The fix will be available in a future update to Windows App SDK
The following fixes are included with the updated Windows SDK projections in the .NET October Update:
- Fixed NullReferencException when writing to bluetooth GATT Characteristic (#755)
- Fixed NullReferenceException with PushNotification (#905)
- Fixed NullReferenceException in ABI.Microsoft.UI.Xaml.Data.ICustomProperty (#840)
- Fixed issues with previously accessed value types being returned incorrectly for RCWs of other objects, for example with PnpObject (#859)
- Fixed NullReferenceException when passing null for a byte[] (#974)
- Make marshaller types public to ensure non-blittable structs can be properly marshalled (#976)
- Improve debugging by not throwing exceptions when loading DLL not found (#933)
C#/WinRT authoring updates:
- Improved authoring project reference support. Refer to our authoring docs for more details (#919)
- Fixed issue where only 1 authored component can be referenced (#774)
- Added diagnostics for authored classes that do not implement an interface correctly (#940)
Changes:
- 8ec0bed Update authoring support for project references (#919)
- 837b1a8 Add settings for .NET Download timeout (#991)
- 7acab7a Fix array marshalers to handle null (#983)
- 26943b2 Fix scenario with set only property declared across projections (#981)
- a9a8631 Make marshaller types public. (#976)
- 6354547 Fix assembly lookup for type reference (IIDOptimizer) (#979)
- c9b8e38 Ujjwalchadha/fix value type caching 2 (#980) [ #932 ]
- dcec6e0 Return IIDOptimizer exit code (#960)
- 1ad1a54 Check that a class correctly implements its interfaces (#942)
- d481c07 Support multiple authored runtime components (#922)
See More
- 2c76f77 Fixes misleading error about IIDOptimizer (#949)
- fbce33a initial arm64 support - building winrt.host.dll only (Reunion doesn't support arm, so cannot test) (#950)
- 990ac98 modify frameworkreference guidance (#944)
- 8e04090 Fix value type caching (#932)
- 3387042 removed en-us (#945)
- 48670e3 Import root targets in WinRT.Runtime (#943)
- 0335a5b Customize ERROR_INVALID_WINDOW_HANDLE exception text to make window interop helpers discoverable (#941)
- cfc26e5 Add fallback if QI on agile reference fails. (#934)
- 3507d24 Run IIDOptimizer on WinRT.Runtime (#931)
- c956f4c Don't use exceptions for flow control when loading dlls. (#933)
- 75ffe54 Fix storage buffer specific IMarshal interface by updating it to new interface format (#930)
This list of changes was auto generated.
CsWinRT v1.3.3
Release Notes
This release of C#/WinRT includes performance improvements and fixes to the runtime and Windows SDK projections, and updates to the C#/WinRT package. For a detailed list of fixes and updates, refer to the Release 1.3.3 Milestone.
C#/WinRT package:
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.3.3
.NET Windows SDK targeting packages:
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.20348.20
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.19041.20
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.18362.20
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.17763.20
Important Notes:
- Microsoft.Windows.SDK.NET.dll
AssemblyVersion
has been incremented from 10.0.xxxxx.18 to 10.0.xxxxx.20. - This version of C#/WinRT and the corresponding .NET Windows SDK targeting packages are not included in the .NET SDK September update. The next .NET SDK update will be in October.
Bug-fixes and Updates
Updates in this release include:
- GUID IID performance optimizations (#849)
- Support for generating projections on .NET 6 (#915)
- Fixed issue where garbage collection of EventSource causes subsequent failure to unsubscribe handlers (#910)
Changes:
- 4560924 Fix heap corruption. (#923)
- 8e15ac2 Added caching of event registration state to support unsubscribes across garbage collections (#910)
- b52b1e6 Support net6 (#915)
- 72ba46d Update IIDOptimizer Target (#920)
- 605f112 fixed typo in IWebAuthenticationCoreManagerInterop (#916)
- 75f268e Fix build tools error with IIDOptimizer (#918)
- df061aa Update nuget/NOTICE.txt for System.CommandLine. (#914)
- 2f2e3fc [Perf] Add IID Lookup Optimization (#849)
- d146899 Remove duplicate file from the CsWinRT NuGet package. (#909)
This list of changes was auto generated.
CsWinRT v1.3.1
Release Notes
This release of C#/WinRT is aligned with the .NET August 2021 Update. This release includes performance improvements and fixes to the runtime and Windows SDK projections, and updates to the C#/WinRT package. For a detailed list of fixes and updates, refer to the Release 1.3.1 Milestone.
C#/WinRT package:
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.3.1
.NET Windows SDK targeting packages:
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.20348.19
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.19041.19
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.18362.19
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.17763.19
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.22000.100-preview
Note: This is a preview Windows Insider SDK package. See aka.ms/windowsinsidersdk for more details on .NET 5 support for targeting the Insider SDK.
Bug-fixes and Updates
- Fixed an issue with InvalidCastException when implementing Drag & Drop scenario (#807)
- Performance improvements with event handler optimizations (#900)
- Fixed an issue with COM interop helpers crashing with x86 (#885)
- Fixed an issue with generated C#/WinRT files being analyzed for Code Analysis warnings (#848)
Changes:
- 92f671d Fix build.cmd where it didn't complete. (#904)
- e6122f0 Fix datapackage to datapackageview invalid cast (#903)
- fcf49db Ensure generated code has the correct header to be picked up by code analysis. (#902)
- 363f47f Update projection sample (#896)
- 27fe1f2 Add missed test (#901)
- 58ede84 Event handler optimizations (#900)
- 46e26cd User/shasnayak/port object lifetime tests (#847)
- 218bf40 Use SDK x86 hive if it exists, as sometimes kits can get installed as if pointing to the non-existing x64 program files (#898)
- ffcc290 Interop interfaces are all pass-by-ref for IID param (#894)
This list of changes was auto generated.
CsWinRT v1.3.0
Release Notes
This release of C#/WinRT is aligned with the .NET July 2021 Update and includes performance improvements, bug-fixes, and other updates to the runtime and Windows SDK projections. This release also includes updates to the C#/WinRT package. For a detailed list of fixes and updates, refer to the Release 1.3.0 Milestone.
C#/WinRT package:
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.3.0
.NET Windows SDK targeting packages:
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.20348.18
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.19041.18
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.18362.18
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.17763.18
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.22000.71-preview
Note: This is a preview Windows Insider SDK package. See aka.ms/windowsinsidersdk for more details on .NET 5 support for targeting the Insider SDK.
Important Notes
- WinRT.Runtime.dll
AssemblyVersion
has been incremented from 1.2.0.0 to 1.3.0.0. - Microsoft.Windows.SDK.NET.dll
AssemblyVersion
has been incremented from 10.0.xxxxx.10 to 10.0.xxxxx.18.
Because of theAssemblyVersion
changes, building with the new runtime will require all dependent components to update their runtime version as well. - Starting with this release, we are also generating the Windows SDK reference packages for Windows 10 SDK (10.0.20348.0), version 2104. This version is primarily intended for Windows Server development.
Bug-fixes and Updates
Runtime and Windows SDK projection updates:
-
Performance improvements for subscribing to events (#852)
-
Added projections for COM Interop APIs (#830)
- See known issue on building with x86 (#888)
-
Added support for calling non-agile objects regardless of current context (#853)
-
Fix for
InvalidCastException
from WinRT.IInspectable to Microsoft.UI.Xaml.Data.ICustomProperty (#856) -
Fix for aggregated tear off scenarios (#870)
C#/WinRT tool updates:
-
Automatically detect dependent WinMDs for C#/WinRT authored components (#855)
-
Fix for invalid C# generated projections when using newlines in custom attributes (#873)
-
Fully qualify attribute types to fix projection issue with nested namespaces (#878)
Changes:
- 3b640ea added out param default to event source handlers (#884)
- 84a3654 [DO NOT MERGE] conditional revert of EventSource caching (#876) [ #861 ]
- 21f231b Fixing targets when winrt.cs doesn't exist (#883)
- d607f3e Address potential races in recent event changes (#882)
- ea43282 Fixed dotnet build in benchmarks (#865)
- 1e1ace2 Rework Fast Up To Date checks to correctly capture cs:winmd relationship (#880)
- 8136c03 Added support for out and array params for event source handler (#881)
- 268f08b Fully qualify attributes. (#878)
- 750ac74 Prioritize the assembly whether the projected type is to look up the helper type. (#877)
- 0bc7f16 Test occasionally times out in pipeline, increasing timeout. (#875)
See More
- 1975832 Allow for either new line to be used. (#874)
- 14f9733 Fix codegen when custom attributes have embedded newlines (#873)
- c4ea06b Fix issue with interop winmd (#872)
- 9154452 Fix for aggregated tear off scenarios (#870)
- d4a60fd Clean intermediate dirs in pipeline builds to manage disk space (#871)
- 334cb0e Fix staging of interop winmd (pipeline has coordinated changes) (#869)
- 8b780e4 Fix build warning treated as error for x86 builds (#868)
- 0a35e01 Project COM interop APIs (#830)
- fa038af Added caching of event registration state to support unsubscribes across garbage collections (#861)
- af996c1 Deleted redundant binary file added by mistake (#867)
- dbcf290 Fixed special cased event source (#866)
- e372646 enum arrays are not blittable - special cased (#860)
- 7c19930 Ujjwalchadha/perf/eventsourcecodegen (#852)
- 2a6c82e Add support for calling non agile objects regardless of current context (#853)
- 3700e25 Add logic to gather respective WinMDs of dependent projection DLLs. (#855)
- 806fe82 Update dotnet SDK to to address VS 16.10 regressions (#857)
This list of changes was auto generated.
CsWinRT v1.2.6
Release Notes
This release of C#/WinRT is aligned with the .NET June 2021 Update, and includes a couple bugfixes to the runtime and Windows SDK projections, as well as updates to the C#/WinRT package. For a complete list of fixes and updates, refer to the Release 1.2.6 Milestone.
C#/WinRT package:
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.2.6
.NET Windows SDK targeting packages:
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.19041.17
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.18362.17
https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref/10.0.17763.17
This release includes the following changes:
- Runtime fix with RPC_E_WRONG_THREAD exceptions when passing C# managed objects as parameters (#612)
- Performance improvements by caching Type.GetType() calls (#785)
- Enable
FastUpToDateCheck
in VS for C#/WinRT projection project authors (#804) - Removed assembly-level SupportedOSPlatformAttribute to enable C#/WinRT projection authors to apply a later version (#792)
Changes:
- f84a3d5 Revert "Fix InvalidCastExceptions from RCW reuse (#833)" (#843)
- 56b520f cache GetHelperType lookup (#838)
- 396128c Add free threaded marshaling to all managed objects (#836)
- 3f5dd34 Fix InvalidCastExceptions from RCW reuse (#833)
- 9359ad7 removed assembly-level SupportedOSPlatformAttribute to enable projection authors to apply a more restricted (later) version (#829)
- ef2472e Add caching for type lookup of runtime class name, to address exception storm perf issue (#828)
This list of changes was auto generated.
CsWinRT 1.2.5
Release Notes
C#/WinRT package:
https://www.nuget.org/packages/Microsoft.Windows.CsWinRT/1.2.5
Changes:
This list of changes was auto generated.