9.0.0-rc.2.24503.2
Preview
Contributors
Product Fixes | Docs | Testing | Dependency Updates | Housekeeping | New Contributors | Known Issue(s) | XAML Warnings Changes
What’s Changed
Product Fixes
- [Android] Fix for Entry SelectionLength by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/24064
- [Testing] moved FlyoutHeaderAdaptsToMinimumHeight to appium by Jakub Florkowski in https://github.com/dotnet/maui/pull/24294
- [iOS] Readonly Editor - Scrolling fix by Jakub Florkowski in https://github.com/dotnet/maui/pull/20505
- Fixed the CollectionView GroupFooterTemplate crashes the application by @NanthiniMahalingam in https://github.com/dotnet/maui/pull/24205
- [Binding SG] Fix formatting by @jkurdek in https://github.com/dotnet/maui/pull/24442
- [Windows] Fix Entry clear button is not taking the color of the text. by @BagavathiPerumal in https://github.com/dotnet/maui/pull/24196
- [XC] Fallback to reflection-based bindings for bindings with “invalid” path by @simonrozsival in https://github.com/dotnet/maui/pull/24238
- [iOS] Bugfix/22469 ios label crash by @artemvalieiev in https://github.com/dotnet/maui/pull/22487
- [resizetizer] fix a build performance issue by Jonathan Peppers in https://github.com/dotnet/maui/pull/24453
- [iOS] Fix Button image sizing and layout by @tj-devel709 in https://github.com/dotnet/maui/pull/22476
- [Android] Fix item fading when moving between groups in Grouped CollectionView by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/24461
- [Binding SG] Refactor data models by @jkurdek in https://github.com/dotnet/maui/pull/24462
- Make
MeasureInvalidatedevent work correctly by Alberto Aldegheri in https://github.com/dotnet/maui/pull/23052 - [Android] Fix for the CarouselView doesn’t scroll to the right Position after changing the ItemSource with Loop enabled. by @Tamilarasan-Paranthaman in https://github.com/dotnet/maui/pull/24431
- Remove code from iOS that short circuits propagation by Shane Neuville in https://github.com/dotnet/maui/pull/24477
- Add changed iOS Button Screenshot by @tj-devel709 in https://github.com/dotnet/maui/pull/24528
- Fix for FlexLayout padding issue by @BagavathiPerumal in https://github.com/dotnet/maui/pull/24195
- [Android] SecureStorage: Rework logic to delete shared prefs when key is corrupt by Jonathan Dick in https://github.com/dotnet/maui/pull/23850
- Shell Tab is still visible after set Tab.IsVisible to false by @SuthiYuvaraj in https://github.com/dotnet/maui/pull/24161
- [Binding SG] Refactor intercepted method verification by @jkurdek in https://github.com/dotnet/maui/pull/24514
- Fix “Grey” cannot be used to set Background property by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/24325
- do not look for parent DataType on collections by Stéphane Delcroix in https://github.com/dotnet/maui/pull/24513
- fix ICanvas.ClipPath documentation by @FaithfulDev in https://github.com/dotnet/maui/pull/24560
- Always return Granted for Read-Write Storage permissions on Android by Gerald Versluis in https://github.com/dotnet/maui/pull/23909
- Fix SafeArea adjustments by Shane Neuville in https://github.com/dotnet/maui/pull/23729
- Fix shadow consistency on Android and iOS by Alberto Aldegheri in https://github.com/dotnet/maui/pull/24415
- [Android & iOS] dialog theme change on changing UserAppTheme by Jakub Florkowski in https://github.com/dotnet/maui/pull/24559
- Revert “Shell Tab is still visible after set Tab.IsVisible to false” by Shane Neuville in https://github.com/dotnet/maui/pull/24588
- RefreshView IsEnabled enhancements by Jakub Florkowski in https://github.com/dotnet/maui/pull/24290
- Revert “Fix SafeArea adjustments” by Shane Neuville in https://github.com/dotnet/maui/pull/24600
- Use the IsRefreshing property directly by Matthew Leibowitz in https://github.com/dotnet/maui/pull/24597
- Null guard in
ShellFlyoutTemplatedContentRenderer.HeaderContainer.UpdateMinimumHeightby @BioTurboNick in https://github.com/dotnet/maui/pull/16573 - Avoid recomputing bindings multiple times and bind BindingContext first by Alberto Aldegheri in https://github.com/dotnet/maui/pull/24553
- Resolved Text Jump Issue in Entry Control with HorizontalTextAlignment Set to End by @BagavathiPerumal in https://github.com/dotnet/maui/pull/24485
- Improve performance and stability of
BindableLayoutby Alberto Aldegheri in https://github.com/dotnet/maui/pull/23136 - [net9.0][Enhancement] FontImageSource defaults and style by Jakub Florkowski in https://github.com/dotnet/maui/pull/23602
- Fix border lagging and unwanted animations on iOS by Alberto Aldegheri in https://github.com/dotnet/maui/pull/24360
- [Android] invalidate shadows on parent’s size change by Jakub Florkowski in https://github.com/dotnet/maui/pull/24561
- Remove netPrevious TFMs from RC/GA by Matthew Leibowitz in https://github.com/dotnet/maui/pull/24488
- Fix layout when MinimumWidth/HeightRequest is removed on Windows by Peter Spada in https://github.com/dotnet/maui/pull/24639
- [Android] Failed to inflate ColorStateList - error fix for CheckBox by Jakub Florkowski in https://github.com/dotnet/maui/pull/24658
- Trigger InvalidateMeasure event on CollectionView when content size changes (iOS) by Alberto Aldegheri in https://github.com/dotnet/maui/pull/24647
- Changed order of calls to properly close MediaPicker Activity / ViewController and set the picker result by @Alex-Dobrynin in https://github.com/dotnet/maui/pull/21998
- Don’t invalidate SuperView if not connected to Window by Shane Neuville in https://github.com/dotnet/maui/pull/24637
- [iOS] SwipeView: Fix reenabling parent scrolling after cancelled swipe by @filipnavara in https://github.com/dotnet/maui/pull/23442
- Make sure that Navigation Pages fill the screen by Shane Neuville in https://github.com/dotnet/maui/pull/24651
- Editor completed event is not triggered properly when unfocused by @SuthiYuvaraj in https://github.com/dotnet/maui/pull/24207
- Fix HybridWebView browser dev tools on iOS/MacCat by @Eilon in https://github.com/dotnet/maui/pull/24679
- [xamlc] return early in
NodeILExtensionsforValidateOnlyby Jonathan Peppers in https://github.com/dotnet/maui/pull/24493 - [C] Allow OnIdiom/OnPlatform to return a Binding by Stéphane Delcroix in https://github.com/dotnet/maui/pull/24594
- Use some of the new iOS APIs by Matthew Leibowitz in https://github.com/dotnet/maui/pull/24605
- Fix for the Nested Entry View In A Frame Causes Crash by @BagavathiPerumal in https://github.com/dotnet/maui/pull/24543
- [iOS] Fix for CollectionView single item horizontal alignment issue when using ItemsLayout with a Footer. by @Tamilarasan-Paranthaman in https://github.com/dotnet/maui/pull/24564
- Ensure disconnected ItemsViewHandler doesn’t hold onto the items source by Shane Neuville in https://github.com/dotnet/maui/pull/24699
- [C] Add ImageSource as LogicalChildren of MenuItem by Stéphane Delcroix in https://github.com/dotnet/maui/pull/24688
- [IOS] - Fix error when running new template maui app on iOS by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/24567
- Clear out prototype cell when changing ItemSource by Shane Neuville in https://github.com/dotnet/maui/pull/24700
- Add Padding for iOS Buttons in some scenarios by @tj-devel709 in https://github.com/dotnet/maui/pull/24760
- Improve keyboard scrolling with editors, contentInsets, and different keyboards by @tj-devel709 in https://github.com/dotnet/maui/pull/24589
- [iOS] Tab Selected Icon Color not changing if using Font icons - fix by Jakub Florkowski in https://github.com/dotnet/maui/pull/22437
- [HybridWebView] fix trimmer warnings on Android by Jonathan Peppers in https://github.com/dotnet/maui/pull/24744
- Adds a rendering performance test by Alberto Aldegheri in https://github.com/dotnet/maui/pull/24762
- [xaml] fix potential NRE in
{Binding}by Jonathan Peppers in https://github.com/dotnet/maui/pull/24756 - Move HybridWebView platform code to handlers by @Eilon in https://github.com/dotnet/maui/pull/24479
- [net9.0] Revert “Move HybridWebView platform code to handlers” by Rui Marinho in https://github.com/dotnet/maui/pull/24876
- Fixed NavigationPage Title property by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/24781
- Avoid throwing in async void when applying relative source bindings by @simonrozsival in https://github.com/dotnet/maui/pull/24780
- Fix ShellContent Title doesn’t observe changes to bound properties by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/24806
- [C] fix specificity comparison by Stéphane Delcroix in https://github.com/dotnet/maui/pull/24891
- Ignore Parent DataType on collection by Stéphane Delcroix in https://github.com/dotnet/maui/pull/24530
- [net9.0] Revert: Add MauiUIApplicationDelegate remote notification methods by Jonathan Dick in https://github.com/dotnet/maui/pull/24907
- Android Ecosystem updates for
net9.0-rc.2by @moljac in https://github.com/dotnet/maui/pull/24665 - Fix Frame offsets inner content view by 1pt by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/24582
- Fix Provided consistent behavior of text color in tabbed page in all platforms. by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/24782
- [iOS] Fix for the CollectionView to prevent duplicate groups or crashes when adding a new item to a group or when adding a new group. by @Tamilarasan-Paranthaman in https://github.com/dotnet/maui/pull/24873
- [XC] Add feature switch to enable compiling bindings with source by @simonrozsival in https://github.com/dotnet/maui/pull/24924
- [release/9.0.1xx-rc2] [android] update
.aotprofilefor .NET 9 RC 2 by @github-actions in https://github.com/dotnet/maui/pull/25043 - [release/9.0.1xx-rc2] Change HybridWebView default address to 0.0.0.1 by @github-actions in https://github.com/dotnet/maui/pull/25044
- [release/9.0.1xx-rc2] Move HybridWebView platform code to handlers (attempt 2) by @github-actions in https://github.com/dotnet/maui/pull/25041
- [release/9.0.1xx-rc2] Fix collectionview tests rc2 by Rui Marinho in https://github.com/dotnet/maui/pull/25045
Docs
- Remove excessive Application API docs by Gerald Versluis in https://github.com/dotnet/maui/pull/24427
- UI testing doc changes by @dustin-wojciechowski in https://github.com/dotnet/maui/pull/24165
- Regenerate the shipped and unshipped API files by Matthew Leibowitz in https://github.com/dotnet/maui/pull/24613
- [net9.0] Regenerate PublicAPIs based on main by Matthew Leibowitz in https://github.com/dotnet/maui/pull/24634
Testing
- [net9.0] Disable failing tests by Rui Marinho in https://github.com/dotnet/maui/pull/24470
- [net9.0] Fix API23 Core device tests by Rui Marinho in https://github.com/dotnet/maui/pull/24128
- [Testing] CollectionViewInfiniteScroll Conversion to UI Test by @dustin-wojciechowski in https://github.com/dotnet/maui/pull/24411
- [Testing]Changed Scroll to 12, added comment by @dustin-wojciechowski in https://github.com/dotnet/maui/pull/24494
- [ci] Specify x86 runtime identifiers for Android device tests API27 by Rui Marinho in https://github.com/dotnet/maui/pull/24509
- Show number of filtered tests in DeviceTests UI by @Eilon in https://github.com/dotnet/maui/pull/24549
- Improve Android device type check and improve UI Test cake scripts by @BretJohnson in https://github.com/dotnet/maui/pull/24495
- Remove duplicate versions of tests by Shane Neuville in https://github.com/dotnet/maui/pull/24611
- [Testing] Split off HandlerDoesNotLeak.DatePicker into its own UI test by @dustin-wojciechowski in https://github.com/dotnet/maui/pull/24585
- [ci] Uitests on Azure Pipelines by Rui Marinho in https://github.com/dotnet/maui/pull/24765
- [tests] Comment out Shell test by Rui Marinho in https://github.com/dotnet/maui/pull/24905
Dependency Updates
- [net9.0] Move packages to rc2 by Rui Marinho in https://github.com/dotnet/maui/pull/24460
- [net9.0] Update net9 arcade bits by Rui Marinho in https://github.com/dotnet/maui/pull/24473
- [net9.0] Update dependencies from dotnet/android by @dotnet-maestro in https://github.com/dotnet/maui/pull/24484
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in https://github.com/dotnet/maui/pull/24550
- [Windows] Upgrade Windows App SDK from 1.5.5 to 1.5.6 by @MartyIX in https://github.com/dotnet/maui/pull/24328
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in https://github.com/dotnet/maui/pull/24587
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in https://github.com/dotnet/maui/pull/24606
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro in https://github.com/dotnet/maui/pull/24673
- [net9.0] Update dependencies from xamarin/xamarin-macios by @dotnet-maestro in https://github.com/dotnet/maui/pull/24636
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in https://github.com/dotnet/maui/pull/24703
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in https://github.com/dotnet/maui/pull/24729
- [net9.0] Update dependencies from xamarin/xamarin-macios by @dotnet-maestro in https://github.com/dotnet/maui/pull/24738
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in https://github.com/dotnet/maui/pull/24743
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in https://github.com/dotnet/maui/pull/24764
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in https://github.com/dotnet/maui/pull/24792
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro in https://github.com/dotnet/maui/pull/24785
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in https://github.com/dotnet/maui/pull/24824
- [net9.0] Update versions on public rc2 by Rui Marinho in https://github.com/dotnet/maui/pull/24845
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro in https://github.com/dotnet/maui/pull/24872
- [release/9.0.1xx-rc2] Update rc2 internal by Rui Marinho in https://github.com/dotnet/maui/pull/25013
- [release/9.0.1xx-rc2] Update dependencies from dotnet/android by @dotnet-maestro in https://github.com/dotnet/maui/pull/25018
- [release/9.0.1xx-rc2] Update dependencies from dotnet/android by @dotnet-maestro in https://github.com/dotnet/maui/pull/25058
Housekeeping
- Remove Xamarin.Forms repo link in issue template by Gerald Versluis in https://github.com/dotnet/maui/pull/24426
- [ci] Update push-nightly.yml by Rui Marinho in https://github.com/dotnet/maui/pull/24438
- [net9.0] Merge main to net9.0 by Rui Marinho in https://github.com/dotnet/maui/pull/24474
- Update bug-report.yml with 8.0.82 SR8.2 by Shane Neuville in https://github.com/dotnet/maui/pull/24519
- [net9.0] Merge main to net9.0 by Shane Neuville in https://github.com/dotnet/maui/pull/24523
- Renamed Github5623.cs in TestCases.HostApp to Github5623.xaml.cs by @dustin-wojciechowski in https://github.com/dotnet/maui/pull/24598
- Re-able the Localization steps and add new credentials by @tj-devel709 in https://github.com/dotnet/maui/pull/24629
- Update script to generate Public API filess by Matthew Leibowitz in https://github.com/dotnet/maui/pull/24631
- Update TriageProcess.md by @jingliancui in https://github.com/dotnet/maui/pull/24646
- Update bug-report.yml RC1 by Shane Neuville in https://github.com/dotnet/maui/pull/24708
- Update to Version 8.0.99 by Shane Neuville in https://github.com/dotnet/maui/pull/24728
- [ci] Use our own pool by Rui Marinho in https://github.com/dotnet/maui/pull/24754
- Update bug-report.yml with 8.0.90 SR9 by Shane Neuville in https://github.com/dotnet/maui/pull/24791
- Add newer cmd linetools paths to cake by Shane Neuville in https://github.com/dotnet/maui/pull/24828
- [net9.0] Merge main into net9.0 (take 3) by Matthew Leibowitz in https://github.com/dotnet/maui/pull/24822
- [net9.0] Merge main to net9.0 by Rui Marinho in https://github.com/dotnet/maui/pull/24898
- [housekeeping] Remove similar issues workflow by Jonathan Dick in https://github.com/dotnet/maui/pull/24911
- Update bug-report.yml SR9.1 by Shane Neuville in https://github.com/dotnet/maui/pull/24931
- [Localization] Change OneLoc branch to ‘lego’ by @tj-devel709 in https://github.com/dotnet/maui/pull/24946
- Update MAUI net8 to be latest public release by Jonathan Dick in https://github.com/dotnet/maui/pull/24954
- [net9.0] Merge main to net9.0 by Rui Marinho in https://github.com/dotnet/maui/pull/24953
New Contributors
- @NirmalKumarYuvaraj made their first contribution in https://github.com/dotnet/maui/pull/24064
- @NanthiniMahalingam made their first contribution in https://github.com/dotnet/maui/pull/24205
- @BagavathiPerumal made their first contribution in https://github.com/dotnet/maui/pull/24196
- @SuthiYuvaraj made their first contribution in https://github.com/dotnet/maui/pull/24161
- @devanathan-vaithiyanathan made their first contribution in https://github.com/dotnet/maui/pull/24325
- @FaithfulDev made their first contribution in https://github.com/dotnet/maui/pull/24560
- @Alex-Dobrynin made their first contribution in https://github.com/dotnet/maui/pull/21998
- @jingliancui made their first contribution in https://github.com/dotnet/maui/pull/24646
Known Issues
Potential .NET MAUI Project Issues due to Changes in .NET SDK Windows Targets
Changes to some of the Windows targets in the .NET SDK may cause unexpected warnings or errors in .NET MAUI projects while the .NET MAUI workload is still built to work with WindowsAppSDK 1.5.x (see https://github.com/dotnet/maui/issues/25132 for more details on upstream issues). Warnings or errors you may see:
MVVMTKCFG0003 - This version of the MVVM Toolkit requires ‘Microsoft.Windows.SDK.NET.Ref’ version ‘10.0.19041.38’ or later. Please update to .NET SDK 8.0.109, 8.0.305 or 8.0.402 (or later). Alternatively, use a temporary ‘Microsoft.Windows.SDK.NET.Ref’ reference, which can be done by setting the ‘WindowsSdkPackageVersion’ property in your .csproj file. For your project configuration, it is recommended to set the package version to ‘10.0.19041.41’.
Could not load file or assembly ‘WinRT.Runtime, Version=2.1.0.0, Culture=neutral, PublicKeyToken=99ea127f02d97709’. The system cannot find the file specified.”:“WinRT.Runtime, Version=2.1.0.0, Culture=neutral, PublicKeyToken=99ea127f02d97709
CS0433: The type ‘TextDecorations’ exists in both ‘Microsoft.WinUI, Version=3.0.0.0, Culture=neutral, PublicKeyToken=de31ebe4ad15742b’ and ‘Microsoft.Windows.SDK.NET, Version=10.0.20348.38, Culture=neutral, PublicKeyToken=31bf3856ad364e35’
To fix these errors, you can add a property to your .csproj file:
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'"">
<WindowsSdkPackageVersion>10.0.19041.38</WindowsSdkPackageVersion>
</PropertyGroup>
If you see an error similar to the one below, you will need to add a partial identifier to the class mentioned in the error due to a new analyzer detecting code which is not Native AOT compatible:
CsWinRT1028: Class ‘MauiCommandBar’ implements WinRT interfaces but isn’t marked partial. Type should be marked partial for trimming and AOT compatibility if passed across the WinRT ABI.
These errors should be addressed in .NET 9 RTM / GA which should reference an updated version of WindowsAppSDK.
Warning changes (XAML)
Starting wih net9.0, we know show warnings for bindings in XAML that could be compiled, but aren’t.
The warning code is XC0022. Compiling bindings by annotating them, or their parent with x:DataType produce more efficient code, and allow NativeAOT for your app.
You can suppress those warnings with
More info at https://learn.microsoft.com/dotnet/maui/fundamentals/data-binding/compiled-bindings
Full Changelog: https://github.com/dotnet/maui/compare/9.0.0-rc.1.24453.9…9.0.0-rc.2.24503.2