From 36671335235c49dc396d0fac85781e821624218c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Jul 2026 06:52:43 +0000 Subject: [PATCH 1/3] Initial plan From 7e4cef8e01771bab4f5a2a9b685c328be36cb16f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Jul 2026 07:07:56 +0000 Subject: [PATCH 2/3] Fix CoreCLR incremental fast deploy packaging Co-authored-by: davidnguyen-tech <87228593+davidnguyen-tech@users.noreply.github.com> --- .../IncrementalBuildTest.cs | 21 +++++++++++++++++++ .../Xamarin.Android.Common.targets | 1 + 2 files changed, 22 insertions(+) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs index 0f24f1ac54a..ac9878467c4 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs @@ -1329,6 +1329,27 @@ public void CasingOnJavaLangObject ([Values (AndroidRuntime.CoreCLR, AndroidRunt } } + [Test] + public void CoreClrFastDeploymentRebuildsApkAfterAssemblyChange () + { + if (IgnoreUnsupportedConfiguration (AndroidRuntime.CoreCLR)) { + return; + } + + var proj = new XamarinAndroidApplicationProject { + EmbedAssembliesIntoApk = false, + }; + proj.SetRuntime (AndroidRuntime.CoreCLR); + using (var b = CreateApkBuilder ()) { + Assert.IsTrue (b.Build (proj), "first build should have succeeded."); + + proj.MainActivity += Environment.NewLine + "// comment"; + proj.Touch ("MainActivity.cs"); + Assert.IsTrue (b.Build (proj), "second build should have succeeded."); + Assert.IsFalse (b.Output.IsTargetSkipped ("_BuildApkFastDev"), "`_BuildApkFastDev` should *not* be skipped!"); + } + } + [Test] public void GenerateJavaStubsAndAssembly ([Values] bool isRelease, [Values (AndroidRuntime.CoreCLR, AndroidRuntime.NativeAOT)] AndroidRuntime runtime) { diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 2690ef12a13..629cd53321f 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -2355,6 +2355,7 @@ because xbuild doesn't support framework reference assemblies. ;$(_AndroidBuildPropertiesCache) ;$(_AdbPropertiesCache) ;$(_PackagedResources) + ;@(_ApplicationSharedLibrary) From c139f29a284a4e05bba1d5793f5b259cf30af430 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Jul 2026 07:15:00 +0000 Subject: [PATCH 3/3] Correct Fast Deploy input evaluation Co-authored-by: davidnguyen-tech <87228593+davidnguyen-tech@users.noreply.github.com> --- .../Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs | 2 ++ src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs index ac9878467c4..c38afe4e154 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs @@ -1340,12 +1340,14 @@ public void CoreClrFastDeploymentRebuildsApkAfterAssemblyChange () EmbedAssembliesIntoApk = false, }; proj.SetRuntime (AndroidRuntime.CoreCLR); + proj.MainActivity = proj.DefaultMainActivity; using (var b = CreateApkBuilder ()) { Assert.IsTrue (b.Build (proj), "first build should have succeeded."); proj.MainActivity += Environment.NewLine + "// comment"; proj.Touch ("MainActivity.cs"); Assert.IsTrue (b.Build (proj), "second build should have succeeded."); + Assert.IsTrue (b.Output.IsTargetSkipped ("_CompileToDalvik"), "`_CompileToDalvik` should be skipped!"); Assert.IsFalse (b.Output.IsTargetSkipped ("_BuildApkFastDev"), "`_BuildApkFastDev` should *not* be skipped!"); } } diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 629cd53321f..ea2a08c4ad3 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -2355,14 +2355,13 @@ because xbuild doesn't support framework reference assemblies. ;$(_AndroidBuildPropertiesCache) ;$(_AdbPropertiesCache) ;$(_PackagedResources) - ;@(_ApplicationSharedLibrary)