9.0.0-rc.2.24503.2
Pre-releaseProduct 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 #24064
- [Testing] moved FlyoutHeaderAdaptsToMinimumHeight to appium by @kubaflo in #24294
- [iOS] Readonly Editor - Scrolling fix by @kubaflo in #20505
- Fixed the CollectionView GroupFooterTemplate crashes the application by @NanthiniMahalingam in #24205
- [Binding SG] Fix formatting by @jkurdek in #24442
- [Windows] Fix Entry clear button is not taking the color of the text. by @BagavathiPerumal in #24196
- [XC] Fallback to reflection-based bindings for bindings with "invalid" path by @simonrozsival in #24238
- [iOS] Bugfix/22469 ios label crash by @artemvalieiev in #22487
- [resizetizer] fix a build performance issue by @jonathanpeppers in #24453
- [iOS] Fix Button image sizing and layout by @tj-devel709 in #22476
- [Android] Fix item fading when moving between groups in Grouped CollectionView by @Vignesh-SF3580 in #24461
- [Binding SG] Refactor data models by @jkurdek in #24462
- Make
MeasureInvalidated
event work correctly by @albyrock87 in #23052 - [Android] Fix for the CarouselView doesn't scroll to the right Position after changing the ItemSource with Loop enabled. by @Tamilarasan-Paranthaman in #24431
- Remove code from iOS that short circuits propagation by @PureWeen in #24477
- Add changed iOS Button Screenshot by @tj-devel709 in #24528
- Fix for FlexLayout padding issue by @BagavathiPerumal in #24195
- [Android] SecureStorage: Rework logic to delete shared prefs when key is corrupt by @Redth in #23850
- Shell Tab is still visible after set Tab.IsVisible to false by @SuthiYuvaraj in #24161
- [Binding SG] Refactor intercepted method verification by @jkurdek in #24514
- Fix "Grey" cannot be used to set Background property by @devanathan-vaithiyanathan in #24325
- do not look for parent DataType on collections by @StephaneDelcroix in #24513
- fix ICanvas.ClipPath documentation by @FaithfulDev in #24560
- Always return Granted for Read-Write Storage permissions on Android by @jfversluis in #23909
- Fix SafeArea adjustments by @PureWeen in #23729
- Fix shadow consistency on Android and iOS by @albyrock87 in #24415
- [Android & iOS] dialog theme change on changing UserAppTheme by @kubaflo in #24559
- Revert "Shell Tab is still visible after set Tab.IsVisible to false" by @PureWeen in #24588
- RefreshView IsEnabled enhancements by @kubaflo in #24290
- Revert "Fix SafeArea adjustments" by @PureWeen in #24600
- Use the IsRefreshing property directly by @mattleibow in #24597
- Null guard in
ShellFlyoutTemplatedContentRenderer.HeaderContainer.UpdateMinimumHeight
by @BioTurboNick in #16573 - Avoid recomputing bindings multiple times and bind BindingContext first by @albyrock87 in #24553
- Resolved Text Jump Issue in Entry Control with HorizontalTextAlignment Set to End by @BagavathiPerumal in #24485
- Improve performance and stability of
BindableLayout
by @albyrock87 in #23136 - [net9.0][Enhancement] FontImageSource defaults and style by @kubaflo in #23602
- Fix border lagging and unwanted animations on iOS by @albyrock87 in #24360
- [Android] invalidate shadows on parent's size change by @kubaflo in #24561
- Remove netPrevious TFMs from RC/GA by @mattleibow in #24488
- Fix layout when MinimumWidth/HeightRequest is removed on Windows by @spadapet in #24639
- [Android] Failed to inflate ColorStateList - error fix for CheckBox by @kubaflo in #24658
- Trigger InvalidateMeasure event on CollectionView when content size changes (iOS) by @albyrock87 in #24647
- Changed order of calls to properly close MediaPicker Activity / ViewController and set the picker result by @Alex-Dobrynin in #21998
- Don't invalidate SuperView if not connected to Window by @PureWeen in #24637
- [iOS] SwipeView: Fix reenabling parent scrolling after cancelled swipe by @filipnavara in #23442
- Make sure that Navigation Pages fill the screen by @PureWeen in #24651
- Editor completed event is not triggered properly when unfocused by @SuthiYuvaraj in #24207
- Fix HybridWebView browser dev tools on iOS/MacCat by @Eilon in #24679
- [xamlc] return early in
NodeILExtensions
forValidateOnly
by @jonathanpeppers in #24493 - [C] Allow OnIdiom/OnPlatform to return a Binding by @StephaneDelcroix in #24594
- Use some of the new iOS APIs by @mattleibow in #24605
- Fix for the Nested Entry View In A Frame Causes Crash by @BagavathiPerumal in #24543
- [iOS] Fix for CollectionView single item horizontal alignment issue when using ItemsLayout with a Footer. by @Tamilarasan-Paranthaman in #24564
- Ensure disconnected ItemsViewHandler doesn't hold onto the items source by @PureWeen in #24699
- [C] Add ImageSource as LogicalChildren of MenuItem by @StephaneDelcroix in #24688
- [IOS] - Fix error when running new template maui app on iOS by @NirmalKumarYuvaraj in #24567
- Clear out prototype cell when changing ItemSource by @PureWeen in #24700
- Add Padding for iOS Buttons in some scenarios by @tj-devel709 in #24760
- Improve keyboard scrolling with editors, contentInsets, and different keyboards by @tj-devel709 in #24589
- [iOS] Tab Selected Icon Color not changing if using Font icons - fix by @kubaflo in #22437
- [HybridWebView] fix trimmer warnings on Android by @jonathanpeppers in #24744
- Adds a rendering performance test by @albyrock87 in #24762
- [xaml] fix potential NRE in
{Binding}
by @jonathanpeppers in #24756 - Move HybridWebView platform code to handlers by @Eilon in #24479
- [net9.0] Revert "Move HybridWebView platform code to handlers" by @rmarinho in #24876
- Fixed NavigationPage Title property by @Vignesh-SF3580 in #24781
- Avoid throwing in async void when applying relative source bindings by @simonrozsival in #24780
- Fix ShellContent Title doesn't observe changes to bound properties by @devanathan-vaithiyanathan in #24806
- [C] fix specificity comparison by @StephaneDelcroix in #24891
- Ignore Parent DataType on collection by @StephaneDelcroix in #24530
- [net9.0] Revert: Add MauiUIApplicationDelegate remote notification methods by @Redth in #24907
- Android Ecosystem updates for
net9.0-rc.2
by @moljac in #24665 - Fix Frame offsets inner content view by 1pt by @devanathan-vaithiyanathan in #24582
- Fix Provided consistent behavior of text color in tabbed page in all platforms. by @devanathan-vaithiyanathan in #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 #24873
- [XC] Add feature switch to enable compiling bindings with source by @simonrozsival in #24924
- [release/9.0.1xx-rc2] [android] update
.aotprofile
for .NET 9 RC 2 by @github-actions in #25043 - [release/9.0.1xx-rc2] Change HybridWebView default address to 0.0.0.1 by @github-actions in #25044
- [release/9.0.1xx-rc2] Move HybridWebView platform code to handlers (attempt 2) by @github-actions in #25041
- [release/9.0.1xx-rc2] Fix collectionview tests rc2 by @rmarinho in #25045
Docs
- Remove excessive Application API docs by @jfversluis in #24427
- UI testing doc changes by @dustin-wojciechowski in #24165
- Regenerate the shipped and unshipped API files by @mattleibow in #24613
- [net9.0] Regenerate PublicAPIs based on main by @mattleibow in #24634
Testing
- [net9.0] Disable failing tests by @rmarinho in #24470
- [net9.0] Fix API23 Core device tests by @rmarinho in #24128
- [Testing] CollectionViewInfiniteScroll Conversion to UI Test by @dustin-wojciechowski in #24411
- [Testing]Changed Scroll to 12, added comment by @dustin-wojciechowski in #24494
- [ci] Specify x86 runtime identifiers for Android device tests API27 by @rmarinho in #24509
- Show number of filtered tests in DeviceTests UI by @Eilon in #24549
- Improve Android device type check and improve UI Test cake scripts by @BretJohnson in #24495
- Remove duplicate versions of tests by @PureWeen in #24611
- [Testing] Split off HandlerDoesNotLeak.DatePicker into its own UI test by @dustin-wojciechowski in #24585
- [ci] Uitests on Azure Pipelines by @rmarinho in #24765
- [tests] Comment out Shell test by @rmarinho in #24905
Dependency Updates
- [net9.0] Move packages to rc2 by @rmarinho in #24460
- [net9.0] Update net9 arcade bits by @rmarinho in #24473
- [net9.0] Update dependencies from dotnet/android by @dotnet-maestro in #24484
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #24550
- [Windows] Upgrade Windows App SDK from 1.5.5 to 1.5.6 by @MartyIX in #24328
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #24587
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #24606
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro in #24673
- [net9.0] Update dependencies from xamarin/xamarin-macios by @dotnet-maestro in #24636
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #24703
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #24729
- [net9.0] Update dependencies from xamarin/xamarin-macios by @dotnet-maestro in #24738
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #24743
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #24764
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #24792
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro in #24785
- [net9.0] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #24824
- [net9.0] Update versions on public rc2 by @rmarinho in #24845
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro in #24872
- [release/9.0.1xx-rc2] Update rc2 internal by @rmarinho in #25013
- [release/9.0.1xx-rc2] Update dependencies from dotnet/android by @dotnet-maestro in #25018
- [release/9.0.1xx-rc2] Update dependencies from dotnet/android by @dotnet-maestro in #25058
Housekeeping
- Remove Xamarin.Forms repo link in issue template by @jfversluis in #24426
- [ci] Update push-nightly.yml by @rmarinho in #24438
- [net9.0] Merge main to net9.0 by @rmarinho in #24474
- Update bug-report.yml with 8.0.82 SR8.2 by @PureWeen in #24519
- [net9.0] Merge main to net9.0 by @PureWeen in #24523
- Renamed Github5623.cs in TestCases.HostApp to Github5623.xaml.cs by @dustin-wojciechowski in #24598
- Re-able the Localization steps and add new credentials by @tj-devel709 in #24629
- Update script to generate Public API filess by @mattleibow in #24631
- Update TriageProcess.md by @jingliancui in #24646
- Update bug-report.yml RC1 by @PureWeen in #24708
- Update to Version 8.0.99 by @PureWeen in #24728
- [ci] Use our own pool by @rmarinho in #24754
- Update bug-report.yml with 8.0.90 SR9 by @PureWeen in #24791
- Add newer cmd linetools paths to cake by @PureWeen in #24828
- [net9.0] Merge main into net9.0 (take 3) by @mattleibow in #24822
- [net9.0] Merge main to net9.0 by @rmarinho in #24898
- [housekeeping] Remove similar issues workflow by @Redth in #24911
- Update bug-report.yml SR9.1 by @PureWeen in #24931
- [Localization] Change OneLoc branch to 'lego' by @tj-devel709 in #24946
- Update MAUI net8 to be latest public release by @Redth in #24954
- [net9.0] Merge main to net9.0 by @rmarinho in #24953
New Contributors
- @NirmalKumarYuvaraj made their first contribution in #24064
- @NanthiniMahalingam made their first contribution in #24205
- @BagavathiPerumal made their first contribution in #24196
- @SuthiYuvaraj made their first contribution in #24161
- @devanathan-vaithiyanathan made their first contribution in #24325
- @FaithfulDev made their first contribution in #24560
- @Alex-Dobrynin made their first contribution in #21998
- @jingliancui made their first contribution in #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 #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 XC0022 in your .csproj.
More info at https://learn.microsoft.com/dotnet/maui/fundamentals/data-binding/compiled-bindings
Full Changelog: 9.0.0-rc.1.24453.9...9.0.0-rc.2.24503.2