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)" />