diff --git a/build-tools/automation/azure-pipelines-internal.yaml b/build-tools/automation/azure-pipelines-internal.yaml index 257c8faecdd..6ef37aaebbb 100644 --- a/build-tools/automation/azure-pipelines-internal.yaml +++ b/build-tools/automation/azure-pipelines-internal.yaml @@ -934,6 +934,18 @@ stages: xaSourcePath: $(Build.SourcesDirectory)/android displayName: Build MAUI template - Release + - template: /build-tools/automation/yaml-templates/run-dotnet-preview.yaml + parameters: + project: $(Build.StagingDirectory)/MauiTestProj/MauiTestProj.csproj + arguments: >- + -f $(DotNetTargetFramework)-android -c Release + -p:UseMonoRuntime=true + -p:_DisableCheckForUnsupportedMonoMobileRuntime=true + --configfile $(Build.SourcesDirectory)/maui/NuGet.config + -bl:$(Build.StagingDirectory)/logs/MauiTestProj-Mono.binlog + xaSourcePath: $(Build.SourcesDirectory)/android + displayName: Build MAUI template - Mono + - task: CopyFiles@2 displayName: copy build logs condition: always() diff --git a/build-tools/automation/azure-pipelines-public.yaml b/build-tools/automation/azure-pipelines-public.yaml index 44eae1ceb96..fcc2347de9d 100644 --- a/build-tools/automation/azure-pipelines-public.yaml +++ b/build-tools/automation/azure-pipelines-public.yaml @@ -620,6 +620,18 @@ stages: xaSourcePath: $(Build.SourcesDirectory)/android displayName: Build MAUI template - Release + - template: /build-tools/automation/yaml-templates/run-dotnet-preview.yaml + parameters: + project: $(Build.StagingDirectory)/MauiTestProj/MauiTestProj.csproj + arguments: >- + -f $(DotNetTargetFramework)-android -c Release + -p:UseMonoRuntime=true + -p:_DisableCheckForUnsupportedMonoMobileRuntime=true + --configfile $(Build.SourcesDirectory)/maui/NuGet.config + -bl:$(Build.StagingDirectory)/logs/MauiTestProj-Mono.binlog + xaSourcePath: $(Build.SourcesDirectory)/android + displayName: Build MAUI template - Mono + - template: /build-tools/automation/yaml-templates/run-maui-r2r-helix-matrix.yaml parameters: project: $(Build.StagingDirectory)/MauiTestProj/MauiTestProj.csproj diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index 45238bf5ddc..1236e3122a5 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -236,6 +236,18 @@ extends: xaSourcePath: $(Build.SourcesDirectory)/android displayName: Build MAUI template - Release + - template: /build-tools/automation/yaml-templates/run-dotnet-preview.yaml@self + parameters: + project: $(Build.StagingDirectory)/MauiTestProj/MauiTestProj.csproj + arguments: >- + -f $(DotNetTargetFramework)-android -c Release + -p:UseMonoRuntime=true + -p:_DisableCheckForUnsupportedMonoMobileRuntime=true + --configfile $(Build.SourcesDirectory)/maui/NuGet.config + -bl:$(Build.StagingDirectory)/logs/MauiTestProj-Mono.binlog + xaSourcePath: $(Build.SourcesDirectory)/android + displayName: Build MAUI template - Mono + - template: /build-tools/automation/yaml-templates/run-maui-r2r-helix-matrix.yaml@self parameters: project: $(Build.StagingDirectory)/MauiTestProj/MauiTestProj.csproj diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs index 0221e7d0a76..6e18f5297bb 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs @@ -2300,8 +2300,9 @@ public void CheckLintResourceFileReferencesAreFixed ([Values (AndroidRuntime.Cor } } - [Test] - public void BuildDoesNotModifyNuGetPackageCache () + [TestCase (AndroidRuntime.CoreCLR)] + [TestCase (AndroidRuntime.MonoVM)] + public void BuildDoesNotModifyNuGetPackageCache (AndroidRuntime runtime) { var proj = new XamarinAndroidApplicationProject { IsRelease = true, @@ -2328,7 +2329,10 @@ public void BuildDoesNotModifyNuGetPackageCache () new Package { Id = "Humanizer.Core.es", Version = "2.14.1" }, }, }; - proj.SetRuntime (AndroidRuntime.CoreCLR); + proj.SetRuntime (runtime); + if (runtime == AndroidRuntime.MonoVM) { + proj.SetProperty ("_DisableCheckForUnsupportedMonoMobileRuntime", "true"); + } proj.SetProperty ("AndroidTypeMapImplementation", "llvm-ir"); proj.SetProperty (KnownProperties.PublishTrimmed, true.ToString ()); proj.MainActivity = proj.DefaultMainActivity diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 6c1814efdad..b6c046b89da 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -1446,6 +1446,12 @@ because xbuild doesn't support framework reference assemblies. <_AndroidLinkNoShrinkOutput Condition=" '%(ResolvedAssemblies.AndroidSkipAssemblyModification)' != 'True' " >$(MonoAndroidIntermediateAssemblyDir)%(DestinationSubPath) + $(MonoAndroidIntermediateAssemblyDir)%(DestinationSubDirectory)%(Filename).scan.empty + $(MonoAndroidIntermediateAssemblyDir)%(DestinationSubDirectory)%(Filename).scan.empty <_AndroidAssembliesToLinkNoShrink Include="@(ResolvedAssemblies)" @@ -1509,6 +1515,7 @@ because xbuild doesn't support framework reference assemblies. Condition=" '$(_AndroidUseMarshalMethods)' != 'True' or !$([System.String]::Copy('%(ResolvedAssemblies.Filename)').ToLowerInvariant().EndsWith('.resources')) " /> <_AfterILLinkDestFiles Condition=" '$(_AndroidUseMarshalMethods)' != 'True' " Include="@(_AfterILLinkSourceFiles->'$(_AfterILLinkOutputDir)%(DestinationSubPath)')" /> <_AfterILLinkDestFiles Condition=" '$(_AndroidUseMarshalMethods)' == 'True' " Include="@(_AfterILLinkSourceFiles)" /> + <_AndroidScanMarkerFiles Include="@(ResolvedAssemblies->'%(JavaObjectsXmlFile)')" Condition=" '%(ResolvedAssemblies.JavaObjectsXmlFile)' != '' " /> + + + <_AfterILLinkSourceFiles Remove="@(_AfterILLinkSourceFiles)" /> <_AfterILLinkDestFiles Remove="@(_AfterILLinkDestFiles)" /> + <_AndroidScanMarkerFiles Remove="@(_AndroidScanMarkerFiles)" />