diff --git a/.github/ISSUE_TEMPLATE/01-building-an-application.yml b/.github/ISSUE_TEMPLATE/01-building-an-application.yml index 50eed735f5b..8fd8633355d 100644 --- a/.github/ISSUE_TEMPLATE/01-building-an-application.yml +++ b/.github/ISSUE_TEMPLATE/01-building-an-application.yml @@ -15,7 +15,8 @@ body: options: - net8.0-android - net9.0-android - - net10.0-android (Preview) + - net10.0-android + - net11.0-android (Preview) - Other validations: required: true diff --git a/.github/ISSUE_TEMPLATE/02-running-an-application.yml b/.github/ISSUE_TEMPLATE/02-running-an-application.yml index 7f122167f52..8a20cdcf95b 100644 --- a/.github/ISSUE_TEMPLATE/02-running-an-application.yml +++ b/.github/ISSUE_TEMPLATE/02-running-an-application.yml @@ -15,7 +15,8 @@ body: options: - net8.0-android - net9.0-android - - net10.0-android (Preview) + - net10.0-android + - net11.0-android (Preview) - Other validations: required: true diff --git a/.github/ISSUE_TEMPLATE/03-mono-android-api.yml b/.github/ISSUE_TEMPLATE/03-mono-android-api.yml index 8dbd099be2c..27dcf18ea4e 100644 --- a/.github/ISSUE_TEMPLATE/03-mono-android-api.yml +++ b/.github/ISSUE_TEMPLATE/03-mono-android-api.yml @@ -20,7 +20,8 @@ body: options: - net8.0-android - net9.0-android - - net10.0-android (Preview) + - net10.0-android + - net11.0-android (Preview) - Other validations: required: true diff --git a/.github/ISSUE_TEMPLATE/04-binding-a-java-library.yml b/.github/ISSUE_TEMPLATE/04-binding-a-java-library.yml index 908cbcd0f87..be514db353f 100644 --- a/.github/ISSUE_TEMPLATE/04-binding-a-java-library.yml +++ b/.github/ISSUE_TEMPLATE/04-binding-a-java-library.yml @@ -17,7 +17,8 @@ body: options: - net8.0-android - net9.0-android - - net10.0-android (Preview) + - net10.0-android + - net11.0-android (Preview) - Other validations: required: true diff --git a/.github/ISSUE_TEMPLATE/05-other.yml b/.github/ISSUE_TEMPLATE/05-other.yml index ded32b7dc0f..fa2d91ff40b 100644 --- a/.github/ISSUE_TEMPLATE/05-other.yml +++ b/.github/ISSUE_TEMPLATE/05-other.yml @@ -15,7 +15,8 @@ body: options: - net8.0-android - net9.0-android - - net10.0-android (Preview) + - net10.0-android + - net11.0-android (Preview) - Other validations: required: true diff --git a/Directory.Build.props b/Directory.Build.props index 734f0b667cb..b967d6b11fa 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,11 +2,11 @@ true - 10.0 + 11.0 net$(DotNetTargetFrameworkVersion) $(DotNetTargetFramework)-android - net9.0 + net10.0 netstandard2.0 Debug $(MSBuildThisFileDirectory)bin\$(Configuration)\ @@ -27,6 +27,9 @@ true true + + + true diff --git a/Documentation/building/unix/instructions.md b/Documentation/building/unix/instructions.md index fdf71da05a8..e2e848b5d64 100644 --- a/Documentation/building/unix/instructions.md +++ b/Documentation/building/unix/instructions.md @@ -77,7 +77,7 @@ Create a new project with `./dotnet-local.sh new android`: ```xml - net10.0-android + net11.0-android Exe diff --git a/Documentation/guides/tracing.md b/Documentation/guides/tracing.md index 4741b7b0372..e0efc5d4b24 100644 --- a/Documentation/guides/tracing.md +++ b/Documentation/guides/tracing.md @@ -66,7 +66,7 @@ Tool 'dotnet-trace' was successfully installed. Run the following commands to create a memory dump of the app: 1. `dotnet build -c Release -p:AndroidEnableProfiler=true .\MyApp.csproj` -2. `adb install .\bin\Release\net9.0-android\MyApp-Signed.apk` +2. `adb install .\bin\Release\net11.0-android\MyApp-Signed.apk` 3. `dotnet-dsrouter android` 4. `adb shell setprop debug.mono.profile '127.0.0.1:9000,nosuspend'` 5. Start the app on your device diff --git a/Documentation/workflow/DevelopmentTips.md b/Documentation/workflow/DevelopmentTips.md index 380100038bc..2aa76ea9a41 100644 --- a/Documentation/workflow/DevelopmentTips.md +++ b/Documentation/workflow/DevelopmentTips.md @@ -575,7 +575,7 @@ download the incorrect manifest pack. Note that this will not provision the `maui-ios`, `maui-maccatalyst`, or `maui-windows` parts of .NET MAUI. Simply specify a single -`net9.0-android` in MAUI projects +`net11.0-android` in MAUI projects to build them. [maui-feed]: https://dev.azure.com/dnceng/public/_packaging?_a=feed&feed=dotnet6%40Local diff --git a/Makefile b/Makefile index 85a0a28b92a..03f05fbd128 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ RUNTIME := $(shell which mono64 2> /dev/null && echo mono64 || echo mono) SOLUTION = Xamarin.Android.sln TEST_TARGETS = build-tools/scripts/RunTests.targets API_LEVEL ?= -PREPARE_NET_FX = net9.0 +PREPARE_NET_FX = net10.0 PREPARE_ARGS = PREPARE_PROJECT = build-tools/xaprepare/xaprepare/xaprepare.csproj PREPARE_MSBUILD_FLAGS = $(PREPARE_MSBUILD_ARGS) $(MSBUILD_ARGS) diff --git a/NuGet.config b/NuGet.config index dec1baffe92..79a3cbb69db 100644 --- a/NuGet.config +++ b/NuGet.config @@ -6,6 +6,7 @@ + diff --git a/build-tools/automation/yaml-templates/build-linux.yaml b/build-tools/automation/yaml-templates/build-linux.yaml index 78fdd444121..53cd23ea184 100644 --- a/build-tools/automation/yaml-templates/build-linux.yaml +++ b/build-tools/automation/yaml-templates/build-linux.yaml @@ -62,13 +62,14 @@ stages: path: s/android/external/android-platform-support persistCredentials: true - - script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration) - workingDirectory: ${{ parameters.xaSourcePath }} - displayName: make prepare-external-git-dependencies - - template: /build-tools/automation/yaml-templates/build-linux-steps.yaml parameters: buildResultArtifactName: ${{ parameters.buildResultArtifactName }} xaSourcePath: ${{ parameters.xaSourcePath }} nugetArtifactName: ${{ parameters.nugetArtifactName }} use1ESTemplate: ${{ parameters.use1ESTemplate }} + + - ${{ if ne(variables['System.PullRequest.IsFork'], 'True') }}: + - script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration) + workingDirectory: ${{ parameters.xaSourcePath }} + displayName: make prepare-external-git-dependencies diff --git a/build-tools/automation/yaml-templates/build-macos.yaml b/build-tools/automation/yaml-templates/build-macos.yaml index cd46157f26a..daca642bd5b 100644 --- a/build-tools/automation/yaml-templates/build-macos.yaml +++ b/build-tools/automation/yaml-templates/build-macos.yaml @@ -83,10 +83,6 @@ stages: path: s/android/external/android-platform-support persistCredentials: true - - script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration) - workingDirectory: ${{ parameters.xaSourcePath }} - displayName: make prepare-external-git-dependencies - - task: CodeQL3000Init@0 displayName: CodeQL 3000 Init condition: and(succeeded(), eq(variables['Codeql.Enabled'], 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) @@ -102,6 +98,11 @@ stages: buildResultArtifactName: ${{ parameters.buildResultArtifactName }} use1ESTemplate: ${{ parameters.use1ESTemplate }} + - ${{ if ne(variables['System.PullRequest.IsFork'], 'True') }}: + - script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration) + workingDirectory: ${{ parameters.xaSourcePath }} + displayName: make prepare-external-git-dependencies + - task: CodeQL3000Finalize@0 displayName: CodeQL 3000 Finalize condition: and(succeededOrFailed(), eq(variables['Codeql.Enabled'], 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) diff --git a/build-tools/automation/yaml-templates/variables.yaml b/build-tools/automation/yaml-templates/variables.yaml index 3108f17f775..470e7f521eb 100644 --- a/build-tools/automation/yaml-templates/variables.yaml +++ b/build-tools/automation/yaml-templates/variables.yaml @@ -24,7 +24,7 @@ variables: - name: NUnit.NumberOfTestWorkers value: 4 - name: DotNetSdkVersion - value: 9.0 + value: 10.0 - name: DotNetSdkQuality value: GA - name: DotNetPreviewSdkVersion @@ -54,9 +54,9 @@ variables: - name: TeamName value: .NET MAUI - name: DotNetTargetFramework - value: net10.0 + value: net11.0 - name: DotNetStableTargetFramework - value: net9.0 + value: net10.0 # Workaround: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1585820 - name: _WriteTelemetryProperties value: false diff --git a/build-tools/scripts/XABuildConfig.cs.in b/build-tools/scripts/XABuildConfig.cs.in index 3743c18e509..4cd01b4513a 100644 --- a/build-tools/scripts/XABuildConfig.cs.in +++ b/build-tools/scripts/XABuildConfig.cs.in @@ -18,6 +18,16 @@ namespace Xamarin.Android.Tools public static readonly Version AndroidDefaultTargetDotnetApiLevel = new Version (@ANDROID_DEFAULT_TARGET_DOTNET_API_LEVEL@, @ANDROID_DEFAULT_TARGET_DOTNET_API_LEVEL_MINOR@); public static readonly Version NDKVersion = new Version (@NDK_VERSION_MAJOR@, @NDK_VERSION_MINOR@, @NDK_VERSION_MICRO@); + /// + /// The current .NET target framework version (e.g., "net11.0"). + /// + public const string LatestDotNetTargetFramework = "net11.0"; + + /// + /// The previous .NET target framework version (e.g., "net10.0"). + /// + public const string PreviousDotNetTargetFramework = "net10.0"; + public static readonly Dictionary ArchAPILevels = new Dictionary (StringComparer.Ordinal) { {"armeabi-v7a", @NDK_ARMEABI_V7_API@}, { "arm", @NDK_ARMEABI_V7_API@}, diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs b/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs index e0757f7b191..1207336cb64 100644 --- a/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs +++ b/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs @@ -59,7 +59,7 @@ protected override async Task Execute (Context context) var sdk_manifests = Path.Combine (dotnetPath, "sdk-manifests"); // Copy the WorkloadManifest.* files from the latest Microsoft.NET.Workload.* listed in package-download.proj - var dotnets = new [] { "net6", "net7", "net8", "net9", "current" }; + var dotnets = new [] { "net6", "net7", "net8", "net9", "net10", "current" }; foreach (var dotnet in dotnets) { var destination = Path.Combine (sdk_manifests, context.Properties.GetRequiredValue (KnownProperties.DotNetMonoManifestVersionBand), diff --git a/build-tools/xaprepare/xaprepare/package-download.proj b/build-tools/xaprepare/xaprepare/package-download.proj index 66b31611352..dcf3c42420d 100644 --- a/build-tools/xaprepare/xaprepare/package-download.proj +++ b/build-tools/xaprepare/xaprepare/package-download.proj @@ -27,11 +27,13 @@ Otherwise, $(MicrosoftNETCoreAppRefPackageVersion) from eng/Versions.props will + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7c4a3e5d7de..fb320075a74 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,52 +1,48 @@ - + https://github.com/dotnet/dotnet - 67ecf9e85940271afc2728753b09789c64bfecf2 + db3b7424251b47d9474dbbe3b4fa7a81fe2915b7 - + https://github.com/dotnet/dotnet - 67ecf9e85940271afc2728753b09789c64bfecf2 + db3b7424251b47d9474dbbe3b4fa7a81fe2915b7 - + https://github.com/dotnet/dotnet - 67ecf9e85940271afc2728753b09789c64bfecf2 + db3b7424251b47d9474dbbe3b4fa7a81fe2915b7 - + https://github.com/dotnet/dotnet - 67ecf9e85940271afc2728753b09789c64bfecf2 + db3b7424251b47d9474dbbe3b4fa7a81fe2915b7 - + https://github.com/dotnet/dotnet - 67ecf9e85940271afc2728753b09789c64bfecf2 + db3b7424251b47d9474dbbe3b4fa7a81fe2915b7 - + https://github.com/dotnet/dotnet - 67ecf9e85940271afc2728753b09789c64bfecf2 + db3b7424251b47d9474dbbe3b4fa7a81fe2915b7 - + https://github.com/dotnet/runtime - 35fe9c612a670adab76c564b266de11f1c2e695c + 2b2a06c8a4d45ec0781266ffa3f3852a052f0fbb - + https://github.com/dotnet/android - 1dcfb6f8779c33b6f768c996495cb90ecd729329 - - - https://github.com/dotnet/android - 82d8938cf80f6d5fa6c28529ddfbdb753d805ab4 + 01024bb616e7b80417a2c6d320885bfdb956f20a - + https://github.com/dotnet/dotnet - 67ecf9e85940271afc2728753b09789c64bfecf2 + db3b7424251b47d9474dbbe3b4fa7a81fe2915b7 - + https://github.com/dotnet/dotnet - 67ecf9e85940271afc2728753b09789c64bfecf2 + db3b7424251b47d9474dbbe3b4fa7a81fe2915b7 diff --git a/eng/Versions.props b/eng/Versions.props index 2a7bd1c9c1e..674d332eb0f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -1,22 +1,22 @@ - 11.0.100-alpha.1.26055.114 + 11.0.100-alpha.1.26060.102 $(MicrosoftNETSdkPackageVersion) - 11.0.0-alpha.1.26055.114 - 11.0.0-alpha.1.26055.114 + 11.0.0-alpha.1.26060.102 + 11.0.0-alpha.1.26060.102 7.0.0-beta.22103.1 - 11.0.0-beta.26055.114 - 11.0.0-alpha.1.26055.114 - 11.0.100-alpha.1.26055.114 + 11.0.0-beta.26060.102 + 11.0.0-alpha.1.26060.102 + 11.0.100-alpha.1.26060.102 $(MicrosoftNETWorkloadMonoToolChainCurrentManifest110100alpha1PackageVersion) $(MicrosoftNETWorkloadEmscriptenCurrentManifest110100alpha1PackageVersion) - 11.0.100-alpha.26055.114 - 0.11.5-alpha.26055.114 + 11.0.100-alpha.26060.102 + 0.11.5-alpha.26060.102 9.0.4 - 35.0.105 - $(MicrosoftNETSdkAndroidManifest90100PackageVersion) + 36.1.2 + $(MicrosoftNETSdkAndroidManifest100100PackageVersion) diff --git a/external/Java.Interop.override.props b/external/Java.Interop.override.props index 8631c214f15..530fe2d9d48 100644 --- a/external/Java.Interop.override.props +++ b/external/Java.Interop.override.props @@ -4,7 +4,7 @@ $(MSBuildThisFileDirectory)xamarin-android-tools True - https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-35fe9c61/nuget/v3/index.json; + https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-2b2a06c8/nuget/v3/index.json; diff --git a/external/debugger-libs.override.props b/external/debugger-libs.override.props index 15d07af83be..845483a4384 100644 --- a/external/debugger-libs.override.props +++ b/external/debugger-libs.override.props @@ -3,7 +3,7 @@ true - https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-35fe9c61/nuget/v3/index.json; + https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-2b2a06c8/nuget/v3/index.json; diff --git a/external/xamarin-android-tools.override.props b/external/xamarin-android-tools.override.props index e60bcd3b605..b4659b0d71f 100644 --- a/external/xamarin-android-tools.override.props +++ b/external/xamarin-android-tools.override.props @@ -8,7 +8,7 @@ true $(MSBuildThisFileDirectory)..\bin\Build$(Configuration)\nuget-unsigned\ - https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-35fe9c61/nuget/v3/index.json; + https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-2b2a06c8/nuget/v3/index.json; settings set target.process.thread.step-out-avoid-nodebug true > command script import samples/NativeAOT/lldb_commands.py, > command script add -f lldb_commands.clearjdb clearjdb -> target create samples/NativeAOT/bin/Debug/net10.0-android/android-arm64/native/NativeAOT.so +> target create samples/NativeAOT/bin/Debug/net11.0-android/android-arm64/native/NativeAOT.so > target select 0 > process attach --pid ``` @@ -95,7 +95,7 @@ Debugger dialog you get when you launch your app. If your symbols are in a separate `.dbg` file, you can use the following. ```shell -> target symbols add samples/NativeAOT/bin/Debug/net10.0-android/android-arm64/native/NativeAOT.so.dbg +> target symbols add samples/NativeAOT/bin/Debug/net11.0-android/android-arm64/native/NativeAOT.so.dbg ``` Next you need to attach the java debugger to clear the dialog which is currently blocking the application execution. You can skip this step if you omitted the `-D` when diff --git a/samples/NativeAOT/run.sh b/samples/NativeAOT/run.sh index 1f815130abd..7e390043132 100755 --- a/samples/NativeAOT/run.sh +++ b/samples/NativeAOT/run.sh @@ -1,6 +1,6 @@ #!/bin/bash -e CONFIG=Release -APK="bin/${CONFIG}/net10.0-android/net.dot.hellonativeaot-Signed.apk" +APK="bin/${CONFIG}/net11.0-android/net.dot.hellonativeaot-Signed.apk" PACKAGE="net.dot.hellonativeaot" ACTIVITY="my.MainActivity" diff --git a/src/Microsoft.Android.Templates/android-bindinglib/AndroidBinding1.csproj b/src/Microsoft.Android.Templates/android-bindinglib/AndroidBinding1.csproj index 63795db62c2..2a15a4a9200 100644 --- a/src/Microsoft.Android.Templates/android-bindinglib/AndroidBinding1.csproj +++ b/src/Microsoft.Android.Templates/android-bindinglib/AndroidBinding1.csproj @@ -1,6 +1,6 @@ - net10.0-android + net11.0-android SUPPORTED_OS_PLATFORM_VERSION AndroidBinding1 enable diff --git a/src/Microsoft.Android.Templates/android-wear/AndroidApp1.csproj b/src/Microsoft.Android.Templates/android-wear/AndroidApp1.csproj index 19eab521a4d..be6b7aa59b8 100644 --- a/src/Microsoft.Android.Templates/android-wear/AndroidApp1.csproj +++ b/src/Microsoft.Android.Templates/android-wear/AndroidApp1.csproj @@ -1,6 +1,6 @@ - net10.0-android + net11.0-android SUPPORTED_OS_PLATFORM_VERSION AndroidApp1 Exe diff --git a/src/Microsoft.Android.Templates/android/AndroidApp1.csproj b/src/Microsoft.Android.Templates/android/AndroidApp1.csproj index cbdd3be77e0..0a2e6d510cd 100644 --- a/src/Microsoft.Android.Templates/android/AndroidApp1.csproj +++ b/src/Microsoft.Android.Templates/android/AndroidApp1.csproj @@ -1,6 +1,6 @@ - net10.0-android + net11.0-android SUPPORTED_OS_PLATFORM_VERSION AndroidApp1 Exe diff --git a/src/Microsoft.Android.Templates/androidlib/AndroidLib1.csproj b/src/Microsoft.Android.Templates/androidlib/AndroidLib1.csproj index b0d4286fe6a..a66576674ed 100644 --- a/src/Microsoft.Android.Templates/androidlib/AndroidLib1.csproj +++ b/src/Microsoft.Android.Templates/androidlib/AndroidLib1.csproj @@ -1,6 +1,6 @@ - net10.0-android + net11.0-android SUPPORTED_OS_PLATFORM_VERSION AndroidLib1 enable diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json b/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json index 3dc09d8d22f..41191d86284 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json @@ -4,8 +4,8 @@ "android": { "description": ".NET SDK Workload for building Android applications.", "packs": [ + "Microsoft.Android.Sdk.net11", "Microsoft.Android.Sdk.net10", - "Microsoft.Android.Sdk.net9", "Microsoft.Android.Ref.36", "Microsoft.Android.Runtime.36.android", "Microsoft.Android.Runtime.Mono.36.android-arm", @@ -20,15 +20,15 @@ ], "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ], "extends" : [ - "microsoft-net-runtime-android-net9", - "microsoft-net-runtime-android-aot-net9", + "microsoft-net-runtime-android-net10", + "microsoft-net-runtime-android-aot-net10", "microsoft-net-runtime-android", "microsoft-net-runtime-android-aot" ] } }, "packs": { - "Microsoft.Android.Sdk.net10": { + "Microsoft.Android.Sdk.net11": { "kind": "sdk", "version": "@WORKLOAD_VERSION@", "alias-to": { @@ -41,7 +41,7 @@ "linux-arm64": "Microsoft.Android.Sdk.Linux" } }, - "Microsoft.Android.Sdk.net9": { + "Microsoft.Android.Sdk.net10": { "kind": "sdk", "version": "@NET_PREVIOUS_VERSION@", "alias-to": { diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.targets index a738a9c1e70..2c45e0a4c31 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.targets @@ -1,22 +1,22 @@ + - - + - + - + diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidGradleProjectTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidGradleProjectTests.cs index 4067d8d7a4e..2ecd6eaf883 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidGradleProjectTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidGradleProjectTests.cs @@ -169,7 +169,7 @@ public void BindPackLibrary ([Values] bool packGradleRef, [Values] AndroidRuntim return; } - var dotnetVersion = "net10.0"; + var dotnetVersion = XABuildConfig.LatestDotNetTargetFramework; var apiLevel = XABuildConfig.AndroidDefaultTargetDotnetApiLevel; var gradleProject = AndroidGradleProject.CreateDefault (GradleTestProjectDir); var moduleName = gradleProject.Modules.First ().Name; 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 665f85d22d8..0781e03330e 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 @@ -945,9 +945,8 @@ public void IfAndroidJarDoesNotExistThrowXA5207 ([Values(true, false)] bool buil public void InvalidTargetPlatformVersion ([Values ("android33", "android99.0")] string platformVersion) { // This test runs on the default runtime, it's testing a runtime-agnostic feature. - const string targetFramework = "net9.0"; var project = new XamarinAndroidApplicationProject { - TargetFramework = $"{targetFramework}-{platformVersion}", + TargetFramework = $"{XABuildConfig.LatestDotNetTargetFramework}-{platformVersion}", }; using var builder = CreateApkBuilder (); builder.ThrowOnBuildFailure = false; diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs index a48a53e8e78..153f98ad324 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs @@ -52,25 +52,25 @@ static IEnumerable Get_DotNetPack_Data () foreach (AndroidRuntime runtime in Enum.GetValues (typeof (AndroidRuntime))) { AddTestData ( - dotnetVersion: "net9.0", + dotnetVersion: XABuildConfig.PreviousDotNetTargetFramework, platform: "android", - apiLevel: new Version (35, 0), + apiLevel: new Version (36, 0), runtime: runtime); AddTestData ( - dotnetVersion: "net9.0", - platform: "android35", - apiLevel: new Version (35, 0), + dotnetVersion: XABuildConfig.PreviousDotNetTargetFramework, + platform: "android36", + apiLevel: new Version (36, 0), runtime: runtime); AddTestData ( - dotnetVersion: "net10.0", + dotnetVersion: XABuildConfig.LatestDotNetTargetFramework, platform: "android", apiLevel: XABuildConfig.AndroidDefaultTargetDotnetApiLevel, runtime: runtime); AddTestData ( - dotnetVersion: "net10.0", + dotnetVersion: XABuildConfig.LatestDotNetTargetFramework, platform: $"android{XABuildConfig.AndroidDefaultTargetDotnetApiLevel}", apiLevel: XABuildConfig.AndroidDefaultTargetDotnetApiLevel, runtime: runtime); @@ -180,20 +180,17 @@ public String Say (String quote) { nupkg.AssertContainsEntry (nupkgPath, $"lib/{dotnetVersion}-android{apiLevel}/baz.aar"); nupkg.AssertDoesNotContainEntry (nupkgPath, $"lib/{dotnetVersion}-android{apiLevel}/_Microsoft.Android.Resource.Designer.dll"); - // NOTE: this is not fixed yet in .NET 9 - if (dotnetVersion == "net10.0") { - using var aarStream = new MemoryStream (); - var aarEntry = nupkg.ReadEntry (aarPath); - aarEntry.Extract (aarStream); - aarStream.Seek (0, SeekOrigin.Begin); - - // Look for libs/29CAF121D5FD8E3D.jar, libs/A1AFA985571E728E.jar - using var aar = ZipArchive.Open (aarStream); - int count = aar.Count (e => - e.FullName.StartsWith ("libs/", StringComparison.OrdinalIgnoreCase) && - e.FullName.EndsWith (".jar", StringComparison.OrdinalIgnoreCase)); - Assert.AreEqual (2, count, $"There should be 2 .jar files in the {aarPath} archive, but found {count}."); - } + using var aarStream = new MemoryStream (); + var aarEntry = nupkg.ReadEntry (aarPath); + aarEntry.Extract (aarStream); + aarStream.Seek (0, SeekOrigin.Begin); + + // Look for libs/29CAF121D5FD8E3D.jar, libs/A1AFA985571E728E.jar + using var aar = ZipArchive.Open (aarStream); + int count = aar.Count (e => + e.FullName.StartsWith ("libs/", StringComparison.OrdinalIgnoreCase) && + e.FullName.EndsWith (".jar", StringComparison.OrdinalIgnoreCase)); + Assert.AreEqual (2, count, $"There should be 2 .jar files in the {aarPath} archive, but found {count}."); } static IEnumerable Get_DotNetTargetFrameworks_Data () @@ -202,42 +199,42 @@ static IEnumerable Get_DotNetTargetFrameworks_Data () foreach (AndroidRuntime runtime in Enum.GetValues (typeof (AndroidRuntime))) { AddTestData ( - dotnetVersion: "net9.0", + dotnetVersion: XABuildConfig.PreviousDotNetTargetFramework, platform: "android", - apiLevel: new Version (35, 0), + apiLevel: new Version (36, 0), runtime: runtime ); AddTestData ( - dotnetVersion: "net10.0", + dotnetVersion: XABuildConfig.LatestDotNetTargetFramework, platform: "android", apiLevel: XABuildConfig.AndroidDefaultTargetDotnetApiLevel, runtime: runtime ); AddTestData ( - dotnetVersion: "net10.0", + dotnetVersion: XABuildConfig.LatestDotNetTargetFramework, platform: $"android{XABuildConfig.AndroidDefaultTargetDotnetApiLevel.Major}", apiLevel: XABuildConfig.AndroidDefaultTargetDotnetApiLevel, runtime: runtime ); AddTestData ( - dotnetVersion: "net10.0", + dotnetVersion: XABuildConfig.LatestDotNetTargetFramework, platform: $"android{XABuildConfig.AndroidDefaultTargetDotnetApiLevel}", apiLevel: XABuildConfig.AndroidDefaultTargetDotnetApiLevel, runtime: runtime ); AddTestData ( - dotnetVersion: "net10.0", + dotnetVersion: XABuildConfig.LatestDotNetTargetFramework, platform: XABuildConfig.AndroidLatestStableApiLevel == XABuildConfig.AndroidDefaultTargetDotnetApiLevel ? null : $"android{XABuildConfig.AndroidLatestStableApiLevel}", apiLevel: XABuildConfig.AndroidLatestStableApiLevel, runtime: runtime ); AddTestData ( - dotnetVersion: "net10.0", + dotnetVersion: XABuildConfig.LatestDotNetTargetFramework, platform: XABuildConfig.AndroidLatestUnstableApiLevel == XABuildConfig.AndroidLatestStableApiLevel ? null : $"android{XABuildConfig.AndroidLatestUnstableApiLevel}", apiLevel: XABuildConfig.AndroidLatestUnstableApiLevel, runtime: runtime @@ -302,7 +299,7 @@ public void DotNetPublish ([Values] bool isRelease, [ValueSource (nameof(Get_Dot } //FIXME: will revisit this in a future PR - if (dotnetVersion != "net10.0") { + if (dotnetVersion != XABuildConfig.LatestDotNetTargetFramework) { Assert.Ignore ("error NETSDK1185: The Runtime Pack for FrameworkReference 'Microsoft.Android.Runtime.34.android-arm' was not available. This may be because DisableTransitiveFrameworkReferenceDownloads was set to true."); } @@ -345,7 +342,7 @@ public void DotNetPublish ([Values] bool isRelease, [ValueSource (nameof(Get_Dot } // Only check latest TFM, as previous or preview TFMs will come from NuGet - if (dotnetVersion == "net10.0" && !preview) { + if (dotnetVersion == XABuildConfig.LatestDotNetTargetFramework && !preview) { var versionString = apiLevel.Minor == 0 ? $"{apiLevel.Major}" : $"{apiLevel.Major}.{apiLevel.Minor}"; var refDirectory = Directory.GetDirectories (Path.Combine (TestEnvironment.DotNetPreviewPacksDirectory, $"Microsoft.Android.Ref.{versionString}")).LastOrDefault (); var expectedMonoAndroidRefPath = Path.Combine (refDirectory, "ref", dotnetVersion, "Mono.Android.dll"); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetXamarinProject.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetXamarinProject.cs index 2f4554cc62d..b5efbc73059 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetXamarinProject.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetXamarinProject.cs @@ -5,6 +5,7 @@ using System.Text; using System.Xml.Linq; using Microsoft.Build.Construction; +using Xamarin.Android.Tools; namespace Xamarin.ProjectTools { @@ -27,7 +28,7 @@ protected DotNetXamarinProject (string debugConfigurationName = "Debug", string SetProperty ("RootNamespace", () => RootNamespace ?? ProjectName); SetProperty ("AssemblyName", () => AssemblyName ?? ProjectName); - TargetFramework = "net10.0-android"; + TargetFramework = $"{XABuildConfig.LatestDotNetTargetFramework}-android"; EnableDefaultItems = false; AppendTargetFrameworkToOutputPath = false; diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/XamarinProject.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/XamarinProject.cs index 674ec1b71ec..d1fa33ce373 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/XamarinProject.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/XamarinProject.cs @@ -197,7 +197,7 @@ public void AddReference (XamarinProject other, string include = null) } /// - /// Gets or sets the target framework for the project (e.g., "net9.0-android"). + /// Gets or sets the target framework for the project (e.g., "net11.0-android"). /// /// public string TargetFramework { diff --git a/tests/MSBuildDeviceIntegration/Tests/DebuggingTest.cs b/tests/MSBuildDeviceIntegration/Tests/DebuggingTest.cs index 21355ab78eb..e8f0201151e 100755 --- a/tests/MSBuildDeviceIntegration/Tests/DebuggingTest.cs +++ b/tests/MSBuildDeviceIntegration/Tests/DebuggingTest.cs @@ -11,6 +11,7 @@ using System.Collections.Generic; using Microsoft.Build.Framework; using Xamarin.Android.Tasks; +using Xamarin.Android.Tools; namespace Xamarin.Android.Build.Tests { @@ -513,8 +514,8 @@ public Foo () app.SetRuntime (runtime); if (!useLatestSdk) { - lib.TargetFramework = "net9.0-android"; - app.TargetFramework = "net9.0-android"; + lib.TargetFramework = $"{XABuildConfig.PreviousDotNetTargetFramework}-android"; + app.TargetFramework = $"{XABuildConfig.PreviousDotNetTargetFramework}-android"; } app.SetProperty ("AndroidPackageFormat", packageFormat); @@ -548,7 +549,7 @@ static MainActivity() appBuilder.Verbosity = LoggerVerbosity.Detailed; Assert.True (libBuilder.Build (lib), "Library should have built."); - SetTargetFrameworkAndManifest (app, appBuilder, app.TargetFramework == "net9.0-android" ? 35 : null); + SetTargetFrameworkAndManifest (app, appBuilder, app.TargetFramework == $"{XABuildConfig.PreviousDotNetTargetFramework}-android" ? 36 : null); Assert.True (appBuilder.Install (app, parameters: parameters.ToArray ()), "App should have installed."); if (!embedAssemblies) { diff --git a/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs b/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs index 85cd0a5d06f..5e4c4a5e1b8 100644 --- a/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs +++ b/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs @@ -1094,11 +1094,10 @@ public void CheckResouceIsOverridden () [Test] [Category ("WearOS")] public void DotNetInstallAndRunPreviousSdk ( - [Values (false, true)] bool isRelease, - [Values ("net9.0-android")] string targetFramework) + [Values (false, true)] bool isRelease) { var proj = new XamarinFormsAndroidApplicationProject () { - TargetFramework = targetFramework, + TargetFramework = $"{XABuildConfig.PreviousDotNetTargetFramework}-android", IsRelease = isRelease, EnableDefaultItems = true, }; @@ -1331,7 +1330,7 @@ public void FastDeployEnvironmentFiles (bool isRelease, bool embedAssembliesInto [Test] public void FixLegacyResourceDesignerStep ([Values (true, false)] bool isRelease) { - string previousTargetFramework = "net9.0-android"; + string previousTargetFramework = $"{XABuildConfig.PreviousDotNetTargetFramework}-android"; var library1 = new XamarinAndroidLibraryProject { IsRelease = isRelease, diff --git a/tests/MSBuildDeviceIntegration/Tests/PerformanceTest.cs b/tests/MSBuildDeviceIntegration/Tests/PerformanceTest.cs index 58e7875477b..d2f795209fd 100644 --- a/tests/MSBuildDeviceIntegration/Tests/PerformanceTest.cs +++ b/tests/MSBuildDeviceIntegration/Tests/PerformanceTest.cs @@ -7,6 +7,7 @@ using Microsoft.Build.Logging.StructuredLogger; using NUnit.Framework; using Xamarin.Android.Tasks; +using Xamarin.Android.Tools; using Xamarin.ProjectTools; namespace Xamarin.Android.Build.Tests @@ -335,7 +336,7 @@ public void Build_XAML_Change ([Values (true, false)] bool install) var lib = new DotNetStandard { ProjectName = "MyLibrary", Sdk = "Microsoft.NET.Sdk", - TargetFramework = "net10.0", // Vanilla project + TargetFramework = XABuildConfig.LatestDotNetTargetFramework, // Vanilla project Sources = { new BuildItem.Source ("Bar.cs") { TextContent = () => "public class Bar { public Bar () { System.Console.WriteLine (" + count++ + "); } }" diff --git a/tests/api-compatibility/acceptable-breakages-vReference-net10.0.txt b/tests/api-compatibility/acceptable-breakages-vReference-net11.0.txt similarity index 100% rename from tests/api-compatibility/acceptable-breakages-vReference-net10.0.txt rename to tests/api-compatibility/acceptable-breakages-vReference-net11.0.txt diff --git a/tools/workload-dependencies/Directory.Build.props b/tools/workload-dependencies/Directory.Build.props index 26e94355fc2..4090a3f295b 100644 --- a/tools/workload-dependencies/Directory.Build.props +++ b/tools/workload-dependencies/Directory.Build.props @@ -6,7 +6,7 @@ Xamarin.Android.Common.props from WorkloadDependencies.proj. --> - net9.0 + net10.0 true