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..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 @@ -1329,6 +1329,29 @@ 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); + 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!"); + } + } + [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..ea2a08c4ad3 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -2361,7 +2361,7 @@ because xbuild doesn't support framework reference assemblies.