What's Changed
Note: This is a service release (SR2) tracking ongoing release/10.0.1xx-sr2 branch development. The version number 10.0.20 represents the second service release for .NET MAUI 10.
.NET MAUI 10.0.20 development introduces significant improvements across all platforms with focus on quality, performance, and developer experience. Current development includes enhancements to XAML Source Generator, iOS/macOS fixes, AppThemeBinding improvements, and improved developer tooling.
AI
-
Add checkpoint/resume system for PR review agent by @kubaflo in #32774
-
Improved pr-reviewer AI agent and modified the usage instructions in README by @kubaflo in #32718
-
Simplify agent instructions and consolidate sandbox testing workflow by @Copilot in #32950
Brushes
-
Fix SolidColorBrush.Equals to compare Color values instead of references by @StephaneDelcroix in #32956
Data Binding
-
Fix CS8603 error for nullable reference types in SourceGen binding paths by @Copilot in #32480
Docs
-
Improve AI agent documentation and testing instructions by @Copilot in #32485
-
Add version 10.0.11 to bug report template by @PureWeen in #32844
-
Add XAML unit testing guidelines by @jfversluis in #32788
-
Add Git workflow rules for Copilot CLI by @jfversluis in #32873
-
Add version 10.0.20 to bug report template by @PureWeen in #33060
-
Add comprehensive README to Microsoft.Maui.Controls NuGet package by @Copilot in #32835
Infrastructure
-
[net10.0] Update dependencies from dotnet/dotnet by @dotnet-maestro[bot] in #32309
-
[net10.0] Update dependencies from dotnet/dotnet by @dotnet-maestro[bot] in #32328
-
[net10.0] Update dependencies from dotnet/macios by @dotnet-maestro[bot] in #32304
-
Localized file check-in by OneLocBuild Task: Build definition ID 13330: Build ID 12753373 by @dotnet-bot in #32482
-
[ci] Device tests using MAUI pool for build by @rmarinho in #32533
-
Refactor device test stages in pipeline configuration by @rmarinho in #32712
-
[Testing] Fail iOS builds fast when Xcode setup fails by @jfversluis in #32746
-
Remove use of storage account read tokens by @mmitche in #32779
-
Add find similar issues GitHub Action by @jfversluis in #32941
-
[main] Update dependencies from dotnet/xharness by @rmarinho in #32821
-
Only emit compiler generated files in Debug configuration by @StephaneDelcroix in #32986
-
Use net*.0 wildcard pattern for CI branch triggers by @jfversluis in #33002
-
Add PR dogfooding script + automatic comment by @jfversluis in #33043
-
[ci] Remove references to yaml-templates by @rmarinho in #33089
-
Avoid UITest snapshot artifact name collisions across stages by @Copilot in #33122
-
[windows] Workaround for EmitCompilerGeneratedFiles issue by @rmarinho in #32981
-
Update main SR version and Github Issues by @PureWeen in #32499
-
Move to slnx and slnf by @mattleibow in #32514
-
Update default solution file in settings by @PureWeen in #32572
-
[net10.0] [ci] Update with new pipelines by @github-actions[bot] in #32265
🔧 Fixes
-
Add demands for Darwin OS in UI tests pipeline by @mattleibow in #32532
-
Added capabilities to get Xcode logs in the Appium server output by @jfversluis in #32149
CollectionView
-
[iOS, macOS] Fixed CollectionView group header size changes with ItemSizingStrategy by @NanthiniMahalingam in #33161
🔧 Fixes
- Fixes issue where CollectionView's grouped item header or footer template size was incorrectly taken from the first item's size instead of the actual template size when ItemSizingStrategy is set to measure the first item
Localization
- LEGO: Pull request from lego/hb_7241b85a-f216-4d55-a9fa-d8030c736df5_20251107204636959 to main by @csigs in #32449
SafeArea
-
[Android] Refactor WindowInsetListener to per-view registry with MauiWindowInsetListener by @Copilot in #32278
-
Fix SafeAreaEdges.SoftInput applying bottom padding when keyboard is hidden and inset consumption issue by @Copilot in #32064
-
Fix content page title clipping on Android API < 30 with window insets compatibility by @Copilot in #32537
-
Fix AppBarLayout insets when FlyoutPage is pushed modally on Android by @Copilot in #32379
Shell
-
[Android] Fix ShellFlyout Footer area not cleared after removing footer view by @NirmalKumarYuvaraj in #32884
TabbedPage
- Fix TabBar not visible on Mac Catalyst on iOS26 by @sheiksyedm in #32972
TitleView
-
Fix TitleView image not showing on iOS 26 and macOS 26.1 by @kubaflo in #32913
-
Fix iOS 26 TitleView covering content in Shell and NavigationPage by @Copilot in #32341
Styles
-
Fix ApplyToDerivedTypes not working for implicit styles by @jfversluis in #32711
Xaml
-
[XSG] Create AppThemeBinding using [UnsafeAccessor] in .NET 10 by @simonrozsival in #32728
-
Disable AppThemeBindingExtension source generation for NET10 by @StephaneDelcroix in #33107
📝 Note
- Disables AppThemeBindingExtension source generation for NET10 to address compatibility issues in SR2
-
[XSG] Fix CS8601 error in XAML SourceGen setter for nullable reference types by @StephaneDelcroix in #32940
-
Log warning instead of error for property element attributes by @StephaneDelcroix in #32896
-
[XSG] Add NullExtension shortcut to SourceGen by @StephaneDelcroix in #32892
-
Fix XamlC null key error when parent VariableDefinition is null by @StephaneDelcroix in #32902
-
[XSG] Add heuristic to support bindable properties generated by other source generators by @Copilot in #32597
-
[XSG] Fix Style setter with content syntax in SourceGen by @Copilot in #32890
-
Improve XAML SourceGenerator performance with C# hot reload support by @StephaneDelcroix in #32870
-
Enable XAML SourceGen by default in templates and add per-file default support by @StephaneDelcroix in #32733
-
Optimize XAML binding code generation - eliminate redundant parameters and property setters by @Copilot in #32420
-
[XSG] Fix MAUIX2003 error for x:Arguments with interface parameters by @jfversluis in #32823
-
[XSG] Fix SourceGen collection assignment with explicit cast by @jfversluis in #32780
-
Fix XAML parser error format for IDE navigation by @StephaneDelcroix in #32713
-
Implement DataTemplateExtension as KnownMarkup for simpler code generation by @StephaneDelcroix in #32761
-
Fix XAML files being embedded as resources when using SourceGen inflator by @StephaneDelcroix in #32744
-
Fix XamlC error with HTTP-based xmlns URIs by @jfversluis in #32768
-
Fix: XAML self-bindings (
.path and empty binding) now compile via source generator by @Copilot in #32468 -
added on platform value for mac by @TamilarasanSF4853 in #32776
-
[XSG] Fix #32836: SourceGen handles typed resources in StaticResource correctly by @StephaneDelcroix in #32843
-
Fix XC0022 and XC0023 warnings by adding x:DataType for compiled bindings by @Copilot in #32444
-
[XSG] Reduce dead code for Setters with compiled converters by @Copilot in #32474
-
[XSG] Fix incorrect TargetNullValue flag check causing NPE with nullable bindings by @Copilot in #32580
-
[XSG] Fix OnPlatform to generate default values for missing platforms by @Copilot in #32778
-
[XSG] Fix RelativeSource binding with FindAncestorBindingContext mode by @Copilot in #32925
🧪 Testing (12)
-
[ci] Update Integration tests with $(_MauiDotNetTfm) by @rmarinho in #32570
-
[Testing] Ignore failure HybridWebViewFeatureTests on Mac by @TamilarasanSF4853 in #32703
-
Fix race condition in RemoveInnerPage unit test by @jfversluis in #32787
-
[Testing] Add Appium capabilities to speed up tests by @jfversluis in #27371
-
Add VisualTestUtils source to replace deprecated NuGet package by @jfversluis in #32607
-
Re-enable ConnectivityChanged test after resolving previous issues by @jfversluis in #32875
-
Fix Maui32879Tests expected output to include pragma warning disable CS0219 for unused variables by @StephaneDelcroix in #32915
-
Add tests for CSS styles with IsEnabled=false by @StephaneDelcroix in #32947
-
[Testing] Fixed Test case failure in PR 32982 - [08/12/2025] Candidate by @HarishKumarSF4517 in #33019
-
Migrate Xaml.UnitTests from NUnit to xUnit by @StephaneDelcroix in #33012
-
Optimize UITest category groups: split, combine, and remove Visual category by @Copilot in #32990
-
Convert Maui27202 and Maui28711 tests from NUnit to XUnit by @PureWeen in #33061
🏠 Housekeeping (1)
- Make (most) GitHub Actions run only for dotnet org by @jfversluis in #33046
Full Changelog: 10.0.11...10.0.20