.NET 11.0.1xx Preview 3 (11588)
Pre-releaseWe're excited to announce our third preview release for .NET 11!
Note
- Xcode 26.3 is required with this release. Xcode 26.3 requires macOS 15.6+.
These are the base SDKs that add support for the platforms in question. For MAUI (which is built on top of our SDKs), visit: https://learn.microsoft.com/dotnet/maui/.
This release consists of the following versions:
- iOS: 26.2.11588-net11-p3
- tvOS: 26.2.11588-net11-p3
- Mac Catalyst: 26.2.11588-net11-p3
- macOS: 26.2.11588-net11-p3
Full release notes: .NET 11 release notes
Known issues: Known issues in .NET 11
Installation
You can use workload set version 11.0.100-preview.3.26214.1 in order to install these versions of the SDKs, please make sure to be using the third preview of the .NET SDK 11.0.100 before issuing the dotnet workload install command below. You can validate your installed dotnet version using dotnet --version do make sure it shows 11.0.100 or greater before proceeding.
dotnet workload install <workload id(s)> --version 11.0.100-preview.3.26214.1Available workload ids
- ios
- tvos
- macos
- maccatalyst
- android (see https://github.com/dotnet/android)
- maui (see https://github.com/dotnet/maui)
Example command installing all listed workloads.
dotnet workload install ios tvos macos maccatalyst maui android --version 11.0.100-preview.3.26214.1You can use dotnet workload --info to validate the workload versions installed in your system.
New features
(Experimental) CoreCLR
We've added support for using CoreCLR as the runtime for iOS, tvOS and Mac Catalyst.
Most apps will see:
- Smaller app size.
- Faster launch and runtime execution.
- Faster builds, both for debug and release.
We're looking for early testers to ensure everything works as expected - using CoreCLR should be a drop-in replacement (it's been the runtime on macOS since .NET 6)
To enable, add this to your project file:
<!-- Use CoreCLR on iOS -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">
<UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>
<!-- Use CoreCLR on tvOS -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tvos'">
<UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>
<!-- Use CoreCLR on Mac Catalyst -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">
<UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>Please try this in your applications and report any issues, either if something doesn't work, or if app size or runtime performance is worse.
Known issues (these will be fixed in a future preview):
- Debugging isn't supported yet
- Some runtime diagnostics features aren't fully functional yet
This is an experimental feature and not intended for production use yet.
What's Changed
- [UIKit] Enable nullability and clean up UIVibrancyEffect. by @rolfbjarne in #24703
- [UIKit] Generate all UIToolbar bindings. by @rolfbjarne in #24709
- [UIKit] Enable nullability and clean up UITypes. by @rolfbjarne in #24701
- [tools] Add sharpie. Fixes #23962. by @rolfbjarne in #24622
- [build] Remove the sharpie dependency. by @rolfbjarne in #24719
- [src] Fix numerous memory leaks. by @rolfbjarne in #24723
- [build] Remove the code to create msbuild.zip/bundle.zip. by @rolfbjarne in #24724
- [ObjCRuntime] Enable nullability and clean up Blocks. by @rolfbjarne in #24726
- [ObjCRuntime] Enable nullability and clean up TypeConverter. by @rolfbjarne in #24733
- [main] Bring back arcade common files by @adamzip in #24743
- [ObjCRuntime] Enable nullability and clean up BackingField. by @rolfbjarne in #24734
- [ObjCRuntime] Enable nullability and clean up Stret. by @rolfbjarne in #24732
- [ObjCRuntime] Enable nullability and clean up CategoryAttribute. by @rolfbjarne in #24744
- [build] Remove Mono dependency. by @rolfbjarne in #24736
- [ObjCRuntime] Enable nullability and clean up TrampolineBlockBase. by @rolfbjarne in #24741
- [Foundation] Treat any exception during X509Chain.Build as a remote certificate chain error. Fixes #24739. by @rolfbjarne in #24754
- [runtime] Remove some dead code related to the embeddinator and unnecessary MONOMAC code. by @rolfbjarne in #24746
- [CI] Bump to use macOS Tahoe by @dalexsoto in #24612
- [tools] Convert tools/diff-to-html to a C# script in scripts/diff-to-html by @rolfbjarne in #24756
- [workflows] Add an arcade workflow to flow 'main' into 'net11.0'. by @rolfbjarne in #24753
- CoreCLR: Compute and pass instruction set to crossgen2 based on deployment target by @Copilot in #24621
- [net11.0] Update dependencies from dotnet/dotnet by @dotnet-maestro[bot] in #24780
- [targets] Improve/fix post-processing item collection for dylibs and frameworks by @rolfbjarne in #24721
- [ObjCRuntime] Enable nullability and clean up Runtime. by @rolfbjarne in #24747
- [CoreFoundation/Foundation] Optimize getting a handle for NSNull and a null CFAllocator. by @rolfbjarne in #24775
- [devops] Add GitHub comment posting to Prepare .NET Release stage by @rolfbjarne in #24783
- [Foundation] Add helper methods to NSArray to create managed arrays of strongly typed dictionaries. by @rolfbjarne in #24759
- [net11.0] Update dependencies from dotnet/macios by @dotnet-maestro[bot] in #24789
- [net11.0] Cache R2R image when only user assemblies are changed by @kotlarmilos in #24735
- [main] Update dependencies from dotnet/dotnet by @dotnet-maestro[bot] in #24752
- [main] Bump to Xcode 26.3 Stable by @dalexsoto in #24795
- [src] Fix memory leaks: release retained handles from Copy/Create native calls by @rolfbjarne in #24794
- [build] Make it possible to only build Objective-Sharpie. by @rolfbjarne in #24788
- Include .mobile.props for DTB (fix for VS Code) by @noiseonwires in #24801
- [Foundation] Add [NullAllowed] to NSBundle members. Fixes #24803. by @rolfbjarne in #24805
- [sharpie] Set a few required properties for the nupkg. by @rolfbjarne in #24813
- [devops] Treat 'merge/' branches as pull request branches. by @rolfbjarne in #24823
- [sharpie] Add the sharpie nupkg version to 'make show-versions'. by @rolfbjarne in #24827
- [ObjCRuntime] Fix GC race in RetainAndAutoreleaseHandle causing intermittent SIGSEGV by @rolfbjarne in #24814
- [sharpie] Add support for visionos_app_extension availability platform. Fixes #18098. by @rolfbjarne in #24828
- [msbuild] Fix race condition when generating MSBStrings.Designer.cs by @rolfbjarne in #24826
- [skills] Add a "macios-xcode-beta-update" skill by @dalexsoto in #24818
- [msbuild] Fix incremental build for Metal shaders. Fixes #24816. by @rolfbjarne in #24829
- [net11.0] Add CoreCLR and R2R framework to post-processing for symbol stripping by @kotlarmilos in #24678
- [msbuild] Don't pass symbol file to strip when _ExportSymbolsExplicitly=false. Fixes #24582. by @rolfbjarne in #24800
- [dotnet] Add support for @(RuntimeEnvironmentVariable). by @rolfbjarne in #24824
- [Foundation] Improve NSArray.ArrayFromHandle significantly. by @rolfbjarne in #24808
- [skills] Add CI failure inspector skill by @dalexsoto in #24846
- [system-dependencies] Update the check for the Metal toolchain to update if an update is available. by @rolfbjarne in #24854
- [dotnet-linker] Export DOTNET for csproj.inc generation. by @rolfbjarne in #24852
- [tests] Fix crash in BitmapContextTest.CreateAdaptive_2 by computing correct buffer size. by @rolfbjarne in #24862
- [tests] Add a 'static-registrar' variation. by @rolfbjarne in #24839
- [Foundation] Improve nullability in NSArray.EnumsFromHandle. by @rolfbjarne in #24861
- [Foundation] Improve nullability in NSArray.FromArray. by @rolfbjarne in #24873
- [net11.0] Exclude user assemblies from R2R composite in Debug by @kotlarmilos in #24725
- [tests] Update max simulator OS version. by @rolfbjarne in #24867
- [sharpie] Fix --scope path matching by @dalexsoto in #24882
- [CI] Move to provisionator via script and use SAS token auth by @dalexsoto in #24893
- [runtime] Make 'is_class_finalization_aware' work before the managed NSObject type has been loaded. by @rolfbjarne in #24875
- [sharpie] Add --deepsplit option to split bindings into one file per source header by @dalexsoto in #24883
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro[bot] in #24880
- [Foundation] Improve nullability in NSArray.FromArrayNative. by @rolfbjarne in #24884
- [GitHub Actions] Allow manual triggering of Linux Build Verification workflow by @rolfbjarne in #24876
- [src] Transient strings must always be disposed. by @rolfbjarne in #24894
- [Foundation] Improve nullability in NSArray.ArrayFromHandleFunc. by @rolfbjarne in #24900
- [tools] There's no need to set the DOTNET variable before creating makefile fragments for csproj anymore. by @rolfbjarne in #24890
- [build] Fix parallel make hang by disabling dotnet build servers by @dalexsoto in #24903
- [tests] Choose the right simulator RID on x64. by @rolfbjarne in #24874
- [tests] Fix flaky RecordTest.DeskCase_83099_InmutableDictionary on macOS CI by @rolfbjarne in #24908
- [msbuild] Rename the localization resources, so they don't match localization resources from other assemblies. by @rolfbjarne in #24899
- [tests] Detect when we couldn't create a second background session. by @rolfbjarne in #24878
- [sharpie] Fix platform type mapping for types inside generic type arguments. Fixes #24892. by @rolfbjarne in #24911
- [msbuild] Filter static frameworks from post-processing items. Fixes #24840. by @rolfbjarne in #24845
- [Foundation] Improve nullability in NSArray.GetItem. by @rolfbjarne in #24907
- [sharpie] Prefer standard protocol interfaces over [Model] classes in type mapping by @rolfbjarne in #24913
- [net11.0] [tests] Re-enable CoreCLR test variations on x64 by @kotlarmilos in #24948
- [net11.0] [devops] Pin yaml-templates to e30b445c to workaround issue. by @rolfbjarne in #24967
New Contributors
- @noiseonwires made their first contribution in #24801
Full Changelog: dotnet-11.0.1xx-preview2-11425...dotnet-11.0.1xx-preview3-11588