Skip to content

Conversation

@jonathanpeppers
Copy link
Member

@jonathanpeppers jonathanpeppers commented Jan 6, 2026

This pull request updates the codebase to make .NET 11.0 the new default target framework, replacing 10.0 and 9.0 in templates, build scripts, and documentation. It also introduces support for .NET 11.0 in issue templates, workload manifests, and build variables. Additionally, it improves the build pipeline by conditionally running certain steps only for non-forked pull requests.

.NET Target Framework Version Updates:

  • Set .NET 11.0 as the default target framework and updated related properties in Directory.Build.props, build-tools/automation/yaml-templates/variables.yaml, and build-tools/scripts/XABuildConfig.cs.in. Previous defaults for 9.0 and 10.0 were updated accordingly.
  • Updated project templates and sample projects to use net11.0-android instead of net10.0-android in multiple .csproj files and documentation.

Workload Manifest and SDK Support:

  • Added Microsoft.Android.Sdk.net11 to the workload manifest, updated pack references, and removed references to net9.0.
  • Updated issue templates to include net11.0-android (Preview) as an option and removed the preview tag from net10.0-android.

Build and CI Pipeline Improvements:

  • Changed the default .NET SDK and test framework versions in build variables and Makefile to align with .NET 10.0/11.0.
  • Modified build pipeline YAML templates to run make prepare-external-git-dependencies only for non-forked pull requests, improving security and reliability.

Documentation and Miscellaneous:

  • Updated documentation and helper scripts to reference the new default target framework version.
  • Added placeholders for future .NET 10.0 Emscripten and Mono toolchain workload packages in package-download.proj.

Squashed commit of the following:

commit e18cc6e
Author: Jonathan Peppers <jonathan.peppers@microsoft.com>
Date:   Tue Jan 6 12:14:06 2026 -0600

    Update variables.yaml

commit 1f4ee87
Author: Jonathan Peppers <jonathan.peppers@microsoft.com>
Date:   Tue Jan 6 11:44:41 2026 -0600

    Update Xamarin.Android.Common.targets

commit 2996b46
Author: Jonathan Peppers <jonathan.peppers@microsoft.com>
Date:   Mon Jan 5 13:57:39 2026 -0600

    Update Step_InstallDotNetPreview.cs

commit d77afba
Author: Jonathan Peppers <jonathan.peppers@microsoft.com>
Date:   Mon Jan 5 11:45:59 2026 -0600

    Update Step_InstallDotNetPreview.cs

commit 77daf1f
Author: Jonathan Peppers <jonathan.peppers@microsoft.com>
Date:   Mon Jan 5 11:02:43 2026 -0600

    see if we can remove dotnet10 feeds

commit 2a263a6
Author: Jonathan Peppers <jonathan.peppers@microsoft.com>
Date:   Mon Jan 5 11:02:31 2026 -0600

    Remove old feeds

commit a56cb6a
Merge: 9e4e83d 3205de6
Author: Jonathan Peppers <jonathan.peppers@microsoft.com>
Date:   Mon Jan 5 11:01:42 2026 -0600

    Merge branch 'main' into darc-main-1d9f7d07-2bbb-4810-b696-4f3fbee0c1cf

commit 9e4e83d
Author: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Date:   Mon Jan 5 05:02:00 2026 +0000

    Update dependencies from https://github.com/dotnet/dotnet build 20251219.9
    On relative base path root
    Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-11.0.100-alpha.1 From Version 11.0.100-alpha.1.25619.109 -> To Version 11.0.0-alpha.1.25619.109

commit ab4c30a
Author: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Date:   Mon Dec 29 05:03:15 2025 +0000

    Update dependencies from https://github.com/dotnet/dotnet build 20251219.9
    On relative base path root
    Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest-11.0.100-alpha.1 From Version 11.0.0-alpha.1.25614.102 -> To Version 11.0.100-alpha.1.25619.109

commit 6c52730
Author: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Date:   Mon Dec 22 05:03:05 2025 +0000

    Update dependencies from https://github.com/dotnet/dotnet build 20251219.9
    On relative base path root
    Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-11.0.100-alpha.1 , Microsoft.NET.ILLink , Microsoft.NETCore.App.Ref From Version 11.0.0-alpha.1.25614.102 -> To Version 11.0.0-alpha.1.25619.109
    Microsoft.DotNet.Build.Tasks.Feed From Version 11.0.0-beta.25614.102 -> To Version 11.0.0-beta.25619.109
    Microsoft.DotNet.Cecil From Version 0.11.5-alpha.25614.102 -> To Version 0.11.5-alpha.25619.109
    Microsoft.NET.Sdk , Microsoft.NET.Workload.Emscripten.Current.Manifest-11.0.100-alpha.1 From Version 11.0.100-alpha.1.25614.102 -> To Version 11.0.100-alpha.1.25619.109
    Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-alpha.25614.102 -> To Version 11.0.100-alpha.25619.109
Changed the PREPARE_NET_FX variable from net9.0 to net10.0 to target the newer .NET framework version in the build process.
Added PackageDownload entries for Microsoft.NET.Workload.Mono.ToolChain.net10 and Microsoft.NET.Workload.Emscripten.net10 to support .NET 10 workloads in the package-download.proj file.
Eliminated PackageDownload entries for net6, net7, net8, and net9 Mono and Emscripten manifests from package-download.proj, retaining only the current and net10 versions. This streamlines the package list and focuses on supported manifest versions.
Commented out PackageDownload entries for Mono and Emscripten .net10 manifests that do not exist yet, adding TODO notes for future reference.
Comment on lines -23 to -24
"microsoft-net-runtime-android-net9",
"microsoft-net-runtime-android-aot-net9",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a TODO, the net10 version of these do not exist yet.

@jonathanpeppers
Copy link
Member Author

jonathanpeppers commented Jan 7, 2026

This is currently blocked because these are not imported:

<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net10" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net10" />

So, no Android "app" project will successfully build yet:

The "RuntimeConfigParserTask" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with <UsingTask> in the project file, or in the *.tasks files located in the "/Users/runner/work/1/s/bin/Release/dotnet/sdk/11.0.100-alpha.1.25619.109" directory.

I think waiting on:

dotnet-maestro bot and others added 5 commits January 7, 2026 09:38
…105.14

On relative base path root
Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-11.0.100-alpha.1 , Microsoft.NET.ILLink , Microsoft.NETCore.App.Ref From Version 11.0.0-alpha.1.25619.109 -> To Version 11.0.0-alpha.1.26055.114
Microsoft.DotNet.Build.Tasks.Feed From Version 11.0.0-beta.25619.109 -> To Version 11.0.0-beta.26055.114
Microsoft.DotNet.Cecil From Version 0.11.5-alpha.25619.109 -> To Version 0.11.5-alpha.26055.114
Microsoft.NET.Sdk , Microsoft.NET.Workload.Emscripten.Current.Manifest-11.0.100-alpha.1 From Version 11.0.100-alpha.1.25619.109 -> To Version 11.0.100-alpha.1.26055.114
Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-alpha.25619.109 -> To Version 11.0.100-alpha.26055.114
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants