From 70e3872590cfed862fbe696a4c3dab4c1fc06af8 Mon Sep 17 00:00:00 2001 From: Stephane Delcroix Date: Thu, 12 Feb 2026 22:47:44 +0100 Subject: [PATCH 1/2] Add MauiXamlHotReload property for IDE communication Introduces the MauiXamlHotReload MSBuild property to communicate to the IDE which type of XAML Hot Reload implementation the application expects. Values: - Legacy (default): Traditional XAML Hot Reload - SourceGen: Source generator-based XAML Hot Reload (experimental) When SourceGen is selected, a warning (MAUI1002) is emitted indicating this feature is experimental and not yet fully implemented. This property exists to facilitate migration from legacy XAML Hot Reload to the source generator-based approach. In a future release, Legacy may be deprecated with SourceGen becoming the only supported mode. Fixes #34027 --- .../netstandard2.0/Microsoft.Maui.Controls.targets | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets b/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets index 22d79df04b92..a0d183b7cb50 100644 --- a/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets +++ b/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets @@ -10,6 +10,9 @@ <_MauiXamlInflator Condition="' $(MauiXamlInflator)' != '' ">$(MauiXamlInflator) <_MauiXamlInflator Condition=" '$(MauiXamlInflator)' == '' ">SourceGen + + Legacy + $(EnableMauiDiagnostics) $(EnableDiagnostics) true @@ -73,6 +76,13 @@ Condition="'$(_MauiTargetsImportedAgain)' == 'True'" /> + + + + + Date: Tue, 24 Feb 2026 21:05:07 +0100 Subject: [PATCH 2/2] Make MauiXamlHotReload validation case-insensitive Add case-insensitive comparison for SourceGen/Legacy values and emit MAUI1003 warning for unrecognized values. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../Microsoft.Maui.Controls.targets | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets b/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets index a0d183b7cb50..43830be2d9aa 100644 --- a/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets +++ b/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets @@ -76,11 +76,21 @@ Condition="'$(_MauiTargetsImportedAgain)' == 'True'" /> - - - + + + <_MauiXamlHotReloadUpper>$([System.String]::Copy('$(MauiXamlHotReload)').Trim().ToUpperInvariant()) + + + + Text="MauiXamlHotReload is set to 'SourceGen'. Source generator-based XAML Hot Reload is experimental and not yet fully implemented. Use at your own risk." + Condition="'$(_MauiXamlHotReloadUpper)' == 'SOURCEGEN'" /> + +