Skip to content

[build] try multi-targeting .NET 8 and 9 #1148

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<RepositoryCommit>$(BUILD_SOURCEVERSION)</RepositoryCommit>

<!-- Default TFM's we build for -->
<_DefaultTargetFrameworks>net8.0-android</_DefaultTargetFrameworks>
<_DefaultTargetFrameworks>net8.0-android;net9.0-android</_DefaultTargetFrameworks>
<_DefaultNetTargetFrameworks>net8.0</_DefaultNetTargetFrameworks>

<!-- Enable DIM/SIM for Classic (defaults to true on .NET) -->
Expand Down Expand Up @@ -85,11 +85,14 @@
<ItemGroup>
<AndroidXNuGetTargetFolders Include="build\net8.0-android34.0" />
<AndroidXNuGetTargetFolders Include="buildTransitive\net8.0-android34.0" />
<AndroidXNuGetTargetFolders Include="build\net9.0-android35.0" />
<AndroidXNuGetTargetFolders Include="buildTransitive\net9.0-android35.0" />
</ItemGroup>

<!-- Folders that _._ files need to go into for packages without managed libraries -->
<ItemGroup>
<AndroidXNuGetLibFolders Include="lib\net8.0-android34.0" />
<AndroidXNuGetLibFolders Include="lib\net9.0-android35.0" />
</ItemGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion build/ci/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:
- ${{ if ne(parameters.use1ESTemplate, true) }}:
- task: PublishPipelineArtifact@1
displayName: Upload logs
condition: always()
inputs:
artifactName: output-${{ parameters.name }}
targetPath: ${{ parameters.artifactsPath }}
condition: always()
2 changes: 1 addition & 1 deletion build/ci/variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ variables:
macosAgentPoolName: VSEng-VSMac-Xamarin-Shared # macOS VM pool name

# Tool variables
dotnetVersion: '8.0.408' # .NET version to install on agent
dotnetVersion: '9.0.300' # .NET version to install on agent
dotnetWorkloadRollbackFile: 'workloads.json' # Rollback file specifying workload versions to install
dotnetNuGetOrgSource: 'https://api.nuget.org/v3/index.json' # NuGet.org URL to find workloads
dotnetWorkloadSource: 'https://aka.ms/dotnet6/nuget/index.json' # .NET engineering URL to find workloads
Expand Down
6 changes: 5 additions & 1 deletion build/scripts/provision-android/provision-android.csproj
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-android</TargetFramework>
<TargetFramework>net9.0-android</TargetFramework>
</PropertyGroup>
<!-- Required for .NET 8 projects -->
<ItemGroup>
<AndroidDependency Include="platforms/android-34" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5204,7 +5204,7 @@
"groupId": "androidx.emoji2",
"artifactId": "emoji2",
"version": "1.2.0",
"nugetVersion": "1.2.0.3",
"nugetVersion": "1.2.0.2",
"nugetId": "Xamarin.AndroidX.Emoji2",
"dependencyOnly": true,
"comments": "Required by 'androidx.emoji2.emoji2-emojipicker:1.5.0'"
Expand Down
5 changes: 0 additions & 5 deletions global.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
{
"sdk":
{
"version": "8.0.408",
"rollForward": "patch"
},
"msbuild-sdks":
{
"MSBuild.Sdk.Extras": "3.0.44",
Expand Down
2 changes: 1 addition & 1 deletion source/_PackageLevelCustomizations.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
to the old behavior. Once we are .NET 9+ we should redo our hand bound code and remove this. *@
@if (@Model.NuGetPackageId == "Xamarin.AndroidX.Media3.ExoPlayer" )
{
<PropertyGroup Condition="$(TargetFramework.Contains('net8.0-android'))" >
<PropertyGroup Condition="$(TargetFramework.Contains('net8.0-android')) or $(TargetFramework.Contains('net9.0-android'))" >
<_AndroidEmitLegacyInterfaceInvokers>true</_AndroidEmitLegacyInterfaceInvokers>
</PropertyGroup>
}
2 changes: 1 addition & 1 deletion tests/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
which is tuned for building bindings packages. -->
<PropertyGroup>
<!-- Default TFM's we build for -->
<_DefaultTargetFrameworks>net8.0-android</_DefaultTargetFrameworks>
<_DefaultTargetFrameworks>net8.0-android;net9.0-android</_DefaultTargetFrameworks>
<_DefaultNetTargetFrameworks>net8.0</_DefaultNetTargetFrameworks>
</PropertyGroup>
</Project>
16 changes: 8 additions & 8 deletions workloads.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"microsoft.net.sdk.android": "34.0.154/8.0.100",
"microsoft.net.sdk.ios": "18.0.8319/8.0.100",
"microsoft.net.sdk.maccatalyst": "18.0.8319/8.0.100",
"microsoft.net.sdk.macos": "15.0.8319/8.0.100",
"microsoft.net.sdk.maui": "8.0.100/8.0.100",
"microsoft.net.sdk.tvos": "18.0.8319/8.0.100",
"microsoft.net.workload.mono.toolchain.current": "8.0.15/8.0.100",
"microsoft.net.workload.emscripten.current": "8.0.15/8.0.100"
"microsoft.net.sdk.android": "35.0.61/9.0.100",
"microsoft.net.sdk.ios": "18.4.9288/9.0.100",
"microsoft.net.sdk.maccatalyst": "18.4.9288/9.0.100",
"microsoft.net.sdk.macos": "15.4.9288/9.0.100",
"microsoft.net.sdk.maui": "9.0.51/9.0.100",
"microsoft.net.sdk.tvos": "18.4.9288/9.0.100",
"microsoft.net.workload.mono.toolchain.current": "9.0.5/9.0.100",
"microsoft.net.workload.emscripten.current": "9.0.5/9.0.100"
}