Skip to content

Update to .NET 11 RC1 SDK - #19999

Merged
James Newton-King (JamesNK) merged 3 commits into
mainfrom
update-dotnet-11-rc1-sdk
Sep 10, 2026
Merged

Update to .NET 11 RC1 SDK#19999
James Newton-King (JamesNK) merged 3 commits into
mainfrom
update-dotnet-11-rc1-sdk

Conversation

@JamesNK

@JamesNK James Newton-King (JamesNK) commented Sep 8, 2026

Copy link
Copy Markdown
Member

Description

Update the repository build SDK to .NET 11 RC1 so development and CI use the supported release-candidate toolchain instead of .NET 10. The existing .NET 11 template test assets and ASP.NET Core template asset versions are also updated from Preview 6 to the matching RC1 build.

The SDK is pinned to 11.0.100-rc.1.26425.128, with matching runtime assets pinned to 11.0.0-rc.1.26425.128. The repository toolset explicitly installs the .NET 8, 9, and 10 Core and ASP.NET Core runtimes for both x64 and arm64 so template tests and remaining framework-dependent test assets can run alongside the .NET 11 SDK.

Build and CI utilities that run in SDK-only jobs now target net11.0, including SelectTests, CreateLayout, GenerateTestSummary, and GenerateCITimeline. In particular, moving CreateLayout to the active SDK runtime avoids a Windows ARM64 failure where the ARM64 host attempted to load the x64 .NET 10 hostpolicy.dll from the repository toolset root. Microsoft.Build's net10.0 managed assets remain compatible with the net11.0 selector.

The template test matrix keeps explicit SDK properties for .NET 8, 9, and 10 while the active .NET 11 SDK follows global.json. This preserves the .NET 10 SDK test slot at 10.0.401 after global.json moves to .NET 11 and avoids duplicating the repository SDK version.

CLI dotnet-tool packaging now enables RID-specific package orchestration only while packing the explicit RID package. The cross-platform pointer package retains all seven RID mappings without asking the .NET 11 SDK to rebuild those RID packages concurrently into one publish directory.

The Blazor hosted playground and tests now use the ResolveWebAssemblyProjectReferences implementation provided by the .NET 11 Static Web Assets SDK. Synthetic test projects declare a target framework and restore before invoking the SDK target.

Validation:

  • restore.cmd completed successfully and provisioned the .NET 8, 9, and 10 Core and ASP.NET Core runtime toolsets alongside SDK 11.0.100-rc.1.26425.128.
  • The template test SDK properties evaluate to 8.0.415, 9.0.306, 10.0.401, and 11.0.100-rc.1.26425.128.
  • Arcade's Sign.proj completed in dry-run/test-sign mode against Aspire.Dashboard.Sdk.win-x64, including the five third-party assemblies reported by SIGN004.
  • SelectTestsWorkflowTests passed on net11.0 (6 tests).
  • SelectTests --help ran successfully with runtime roll-forward disabled, confirming direct use of the .NET 11 runtime.
  • Aspire.Hosting.Blazor.Tests passed (88 tests).
  • The .NET 11 SDK's ResolveWebAssemblyProjectReferences target resolved the real BlazorHosted client project.
  • The actual clipack target produced both Aspire.Cli.win-x64 and the payload-free Aspire.Cli pointer package. The pointer settings retain all seven RID mappings.
  • dotnet build tests/Aspire.Templates.Tests/Aspire.Templates.Tests.csproj --no-restore /p:SkipNativeBuild=true succeeded.
  • The Windows equivalent of the CLI bundle payload build completed successfully: .\dotnet.cmd msbuild eng\Bundle.proj /restore /p:Configuration=Debug /p:TargetRid=win-x64 /p:BundleVersion=ci-bundlepayload /p:SkipNativeBuild=true /p:ContinuousIntegrationBuild=true.
  • The four affected hosting lifecycle/URL tests passed with HTTP readiness probes and response assertions.
  • git diff --check passed.
  • All unlocked projects compiled successfully with .NET 11 RC1. The full repository build could not complete because existing Stress.ApiService, Stress.Empty, Stress.TelemetryService, and Aspire.Dashboard processes were locking their output binaries.

Fixes # (issue)

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19999

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19999"

@github-actions github-actions Bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Sep 8, 2026
@github-actions
github-actions Bot requested a balanced review from Copilot September 8, 2026 23:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Template tests now incorrectly use the .NET 11 SDK for .NET 10-specific validation.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Updates Aspire’s development and CI toolchain to .NET 11 RC1.

Changes:

  • Pins the repository SDK to .NET 11 RC1.
  • Updates .NET 11 template and ASP.NET Core asset versions.
File summaries
File Description
global.json Updates the repository SDK/tool version.
eng/Versions.props Updates .NET 11 test and template assets.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Comment thread global.json
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The template harness now incorrectly uses the .NET 11 SDK for its .NET 10 SDK test matrix.

Review details

Suppressed comments (1)

global.json:13

  • This now makes the template harness install the .NET 11 SDK into both its dotnet-10 and dotnet-11 test directories. tests/Shared/Aspire.Templates.Testing.targets:17-20 derives SdkVersionForNet10TFM from this tools.dotnet value, while the template matrix explicitly expects TestSdk.Net10 not to support net11.0 (TemplateTestsBase.cs:352-360). Those tests will either fail or stop exercising the .NET 10 SDK. Please add a dedicated .NET 10 SDK version property and update the template provisioning target to use it instead of parsing global.json.
    "dotnet": "11.0.100-rc.1.26425.128",
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The repository-wide SDK upgrade and Helix impact warrant human confirmation of complete CI results.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The changed Helix infrastructure path needs explicit classification in the test-trigger map.

Review details

Suppressed comments (1)

Previously missed (1) — in code that hasn't changed since the last review.

tests/helix/send-to-helix-inner.proj:16

  • This AzDO-only .proj is consumed by eng/pipelines/templates/BuildAndTest.yml:301-305 but is outside Aspire.slnx. Because tests/helix/** is neither routed nor ignored in eng/github-ci/test-trigger-map.yml, SelectTests treats a Helix-only change as unowned and unnecessarily forces the full GitHub PR matrix. Per docs/ci/test-trigger-map.md:146-159, explicitly classify this no-PR-CI path (for example, add a documented tests/helix/** ignore entry).
  • Files reviewed: 6/6 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The changed Helix CI input is not explicitly classified in the test trigger map.

Review details

Suppressed comments (1)

Previously missed (1) — in code that hasn't changed since the last review.

tests/helix/send-to-helix-inner.proj:16

  • Please also classify tests/helix/** in eng/github-ci/test-trigger-map.yml (most likely under ignore as AzDO-only, unless a GitHub verifier is added). This project is consumed by the public Helix pipeline (eng/pipelines/templates/BuildAndTest.yml:290-305) but is not represented in the solution ProjectGraph; the map's Layer 2 contract requires such inputs to be explicitly accounted for (eng/github-ci/test-trigger-map.yml:68-70). Otherwise edits here fall through to the unattributed ALL fallback rather than recording their actual CI ownership.
  • Files reviewed: 7/7 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@radical Ankit Jain (radical) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Build changes look good to me. Approving this, but we should run the internal pipeline before merging.

@JamesNK

Copy link
Copy Markdown
Member Author

I don’t know how to do that. Could you handle internal validation?

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The repository-wide SDK, cross-platform packaging, and signing changes warrant human review, especially since a complete build was not obtained.

Review details
  • Files reviewed: 17/17 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The .NET 10 template-test slot uses 10.0.400 instead of the documented and previously pinned 10.0.401.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 16/16 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Comment thread eng/Versions.props Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Tests selector

Selects the full PR test matrix + all PR-gated jobs (ALL) — a rule matching 'eng/Versions.props' selects ALL

Advisory workflow impact (4)

  • Aspire.Deployment.EndToEnd.Tests (deployment workflow-only)
  • Aspire.EndToEnd.Tests (outerloop-only)
  • Aspire.Oracle.EntityFrameworkCore.Tests (outerloop-only)
  • deployment-e2e (schedule/dispatch-only)

Selection computed for commit 6b56765.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The repository-wide SDK and CI transition warrants final human review because the full build did not complete.

Review details
  • Files reviewed: 16/16 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@JamesNK
James Newton-King (JamesNK) merged commit 482742f into main Sep 10, 2026
791 of 794 checks passed
@JamesNK
James Newton-King (JamesNK) deleted the update-dotnet-11-rc1-sdk branch September 10, 2026 03:17
@github-actions github-actions Bot added this to the 13.6 milestone Sep 10, 2026
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

✅ No documentation update needed.

Step 5 branch taken: docs_required -> false positive (no concrete doc edit possible), per Step 10 exception 3.

Triggered signals (1): pr_body_has_cli_flag_mention - evidence: PR body text "...SelectTests --help ran successfully with runtime roll-forward disabled, confi...". SelectTests is an internal Aspire repo build/CI tool (tools/SelectTests), not an Aspire product CLI (aspire command). Its --help flag is not a user-facing Aspire feature and has no corresponding page on aspire.dev, so this signal is a false positive of the CLI-flag heuristic.

Verification of remaining changed files (16 total): All are internal engineering/build changes with no Aspire product user-facing surface:

  • global.json, eng/Versions.props - pin the repo's own build/test .NET SDK/runtime versions from 10.0.401 to 11.0.100-rc.1.26425.128 (RC1). This does not change the .NET SDK version Aspire users need (still .NET 10 per get-started/prerequisites.mdx) - it only affects contributors building the Aspire repo itself.
  • eng/clipack/Common.projitems - reorders MSBuild properties for RID-specific CLI tool packaging; no change to packaged output or CLI behavior.
  • tools/CreateLayout, tools/GenerateCITimeline, tools/GenerateTestSummary, tools/SelectTests (.csproj) - TargetFramework bumped to net11.0 for internal build utilities.
  • tests/helix/send-to-helix-inner.proj, tests/Infrastructure.Tests/Infrastructure.Tests.csproj, tests/Shared/Aspire.Templates.Testing.targets - CI/test infrastructure version wiring.
  • src/Aspire.Hosting.Blazor/BlazorHostedExtensions.cs - comment-only update (no code/behavior change), reflecting that ResolveWebAssemblyProjectReferences is now provided by the .NET 11 SDK instead of a local sample copy.
  • playground/BlazorHosted/**/*.csproj - removes now-redundant sample MSBuild properties.
  • tests/Aspire.Hosting.Blazor.Tests/BlazorHostedExtensionsTests.cs, tests/Aspire.Hosting.Tests/DistributedApplicationTests.cs, `te

(summary truncated)

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ CI Failure Analysis: Possible Flaky Test(s)

The CI build failed due to test failure(s) that appear unrelated to the PR changes. These may be flaky tests.

Suspected flaky test(s):

Suggested actions:

  • Re-run the failed CI jobs to confirm if the failure is intermittent
  • If the test continues to fail, consider quarantining it using /quarantine-test <test name> <issue URL>
  • Search existing issues to see if this test is already known to be flaky

You can re-run the failed jobs from the workflow run page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants