Skip to content

Add .NET 10 (LTS) target framework support#94

Merged
sfmskywalker merged 5 commits intodevelop/3.6.0from
copilot/support-dotnet-10-lts
Dec 2, 2025
Merged

Add .NET 10 (LTS) target framework support#94
sfmskywalker merged 5 commits intodevelop/3.6.0from
copilot/support-dotnet-10-lts

Conversation

Copy link
Contributor

Copilot AI commented Nov 16, 2025

Adds .NET 10 (LTS) as a target framework while maintaining backward compatibility with .NET 8 and .NET 9.

Changes

Target Frameworks

  • Library projects: Multi-target net8.0;net9.0;net10.0 via src/modules/Directory.Build.props (78 projects)
  • Build/workbench/test projects: Single-target net10.0

Conditional Dependencies

  • System.Linq.Async: Only included for .NET 8/9 (excluded from .NET 10 with native async LINQ)
<!-- System.Linq.Async only for .NET 8 and 9 - .NET 10 has native async LINQ support -->
<ItemGroup Condition="'$(TargetFramework)' != 'net10.0'">
    <PackageReference Include="System.Linq.Async" />
</ItemGroup>

CI/CD

  • GitHub Actions workflows updated to install .NET 8.x, 9.x, and 10.x SDKs

Modified Files (16)

  • src/modules/Directory.Build.props
  • test/modules/Directory.Build.props
  • 3 multi-targeting library projects
  • 6 single-target projects (build, workbench, tests)
  • 2 service bus projects (conditional System.Linq.Async)
  • Directory.Packages.props
  • .github/workflows/{pr,packages}.yml

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • f.feedz.io
    • Triggering command: /usr/bin/dotnet build /home/REDACTED/work/elsa-extensions/elsa-extensions/build/_build.csproj /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet (dns block)
    • Triggering command: /usr/bin/dotnet restore /home/REDACTED/work/elsa-extensions/elsa-extensions/Elsa.Extensions.sln --verbosity quiet (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>Support targeting .NET 10 (LTS)</issue_title>
<issue_description>### Summary

As .NET 10 has now been released as a Long‑Term Support (LTS) version (released November 11, 2025) and will receive support until November 14, 2028, ([Microsoft][1]), it would be beneficial for this project to add targeting support for .NET 10 as a target framework.

Motivation

  • Aligning with the latest LTS version ensures the project remains on a well‑supported platform with security patches and updates for three years. ([Microsoft][2])
  • .NET 10 brings notable enhancements (performance improvements, new SDK features such as file‑based apps, etc.) that could benefit consumers of this library. ([DEV Community][3])
  • Many downstream applications will migrate to .NET 10 in the coming months; adding support now will ease their upgrade paths and increase compatibility.

Proposed Changes

  • Update the project’s .csproj (or build configuration) to add net10.0 as a target framework.
  • Ensure that CI/build infrastructure is updated to include .NET 10 SDK and test the project under this newer target.
  • Address any API‑breaks or deprecations that affect compatibility with .NET 10 (if any).
  • (Optional) Consider multi‑targeting both the current version (e.g., net8.0 or net9.0) and net10.0, to maintain backward compatibility while enabling forward support.

Impact & Considerations

  • Minor build adjustments may be needed but the benefits in stability and future‑proofing are substantial.
  • Users on older framework versions will not be impacted (assuming multi‑targeting); this is additive support.
  • We should test key scenarios (e.g., platforms, runtime behaviours) under .NET 10 to confirm compatibility.

Requested Action

Please schedule or prioritise adding .NET 10 target support in the next release cycle. If there are any blockers or compatibility concerns known today, let’s call them out here so we can plan accordingly.</issue_description>

<agent_instructions>Maintain backwards compatibility with .NWT 8 and .NET 9. Be on the lookout that some packages related to async linq are now part of .NET 10, and so for some projects, you might need to conditionally include the package when < .NET 10.

Example:

<!-- System.Linq.Async only for .NET 8 and 9 - .NET 10 has native async LINQ support -->
    <ItemGroup Condition="'$(TargetFramework)' != 'net10.0'">
        <PackageReference Include="System.Linq.Async" />
    </ItemGroup>

This PR shows a successful upgrade to .NET 10.</agent_instructions>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 2 commits November 16, 2025 17:20
…nq.Async

Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com>
Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com>
Copilot AI changed the title [WIP] Add support for targeting .NET 10 LTS Add .NET 10 (LTS) target framework support Nov 16, 2025
Copilot AI requested a review from sfmskywalker November 16, 2025 17:26
@sfmskywalker sfmskywalker marked this pull request as ready for review December 2, 2025 09:34
Copilot AI review requested due to automatic review settings December 2, 2025 09:34
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds .NET 10 (LTS) support to the Elsa Extensions project while maintaining backward compatibility with .NET 8 and .NET 9. The implementation follows best practices by multi-targeting library projects across all three framework versions (net8.0;net9.0;net10.0) while updating test, build, and workbench projects to single-target .NET 10.

Key Changes

  • Multi-targeting for libraries: 78 library projects now target net8.0;net9.0;net10.0 via src/modules/Directory.Build.props
  • Conditional dependency management: System.Linq.Async package is conditionally excluded for .NET 10 targets since async LINQ support is now native
  • CI/CD updates: GitHub Actions workflows updated to install .NET 8.x, 9.x, and 10.x SDKs to support multi-targeting builds

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/modules/Directory.Build.props Updated default TargetFrameworks to include net10.0 for all library modules
test/modules/Directory.Build.props Updated default TargetFramework to net10.0 for test projects
src/modules/scheduling/Elsa.Scheduling.Quartz/Elsa.Scheduling.Quartz.csproj Added net10.0 to multi-target frameworks
src/modules/scheduling/Elsa.Scheduling.Quartz.EFCore.MySql/Elsa.Scheduling.Quartz.EFCore.MySql.csproj Added net10.0 to multi-target frameworks
src/modules/agents/Elsa.Agents.Persistence.EFCore.MySql/Elsa.Agents.Persistence.EFCore.MySql.csproj Added net10.0 to multi-target frameworks
src/modules/servicebus/Elsa.ServiceBus.Kafka/Elsa.ServiceBus.Kafka.csproj Added conditional exclusion of System.Linq.Async for .NET 10
src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Elsa.ServiceBus.AzureServiceBus.csproj Added conditional exclusion of System.Linq.Async for .NET 10
build/_build.csproj Updated to single-target net10.0
src/workbench/Elsa.Server.Web/Elsa.Server.Web.csproj Updated to single-target net10.0
src/workbench/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj Updated to single-target net10.0
src/workbench/ElsaStudioWebAssembly/ElsaStudioWebAssembly.csproj Updated to single-target net10.0
test/workbench/Elsa.TestServer.Web/Elsa.TestServer.Web.csproj Updated to single-target net10.0
test/modules/persistence/Elsa.MongoDb.UnitTests/Elsa.MongoDb.UnitTests.csproj Updated to single-target net10.0
Directory.Packages.props Added conditional package version configuration for net10.0
.github/workflows/pr.yml Added .NET 8.x and 10.x SDK installation alongside 9.x
.github/workflows/packages.yml Added .NET 8.x, 9.x, and 10.x SDK installation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.

sfmskywalker and others added 2 commits December 2, 2025 18:51
…afka.csproj

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…rviceBus.AzureServiceBus.csproj

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@sfmskywalker sfmskywalker merged commit 98d6e26 into develop/3.6.0 Dec 2, 2025
3 checks passed
@sfmskywalker sfmskywalker deleted the copilot/support-dotnet-10-lts branch December 2, 2025 17:51
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.

3 participants