Skip to content

Move to .NET 10 (net10.0-windows, SDK 10.0.110) - #298

Open
Gordon Lam (yeelam-gordon) wants to merge 8 commits into
microsoft:mainfrom
yeelam-gordon:fix/dotnet-sdk-update
Open

Move to .NET 10 (net10.0-windows, SDK 10.0.110)#298
Gordon Lam (yeelam-gordon) wants to merge 8 commits into
microsoft:mainfrom
yeelam-gordon:fix/dotnet-sdk-update

Conversation

@yeelam-gordon

@yeelam-gordon Gordon Lam (yeelam-gordon) commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Moves the extension to .NET 10.

Changes

  • Target framework: net9.0-windowsnet10.0-windows10.0.26100.0 (WindowsSdkPackageVersion10.0.26100.87).
  • global.json: pins the .NET SDK to 10.0.110 with rollForward: latestFeature — uses the newest installed .NET 10 SDK at or above that floor. CI installs it via global-json-file.
  • Dependencies: Microsoft.Data.Sqlite10.0.10.
  • Build config: NuGetAuditMode=direct (audit direct dependencies — same as the PowerToys CmdPal template).

CsWinRT source-generator requirements on net10 (why the partial edits are here)

Upgrading the TFM to net10 also updates the CsWinRT toolchain. On net10, every class that implements a Command Palette WinRT interface (e.g. InvokableCommand) must be declared partial so the generator can emit the ABI projection into a generated partial. Without partial, CsWinRT raises CsWinRT1028, which fails the TreatWarningsAsErrors build.

The affected classes are therefore marked partial — the sanctioned fix — rather than suppressing the diagnostic:

  • Commands: SignInCommand, SignOutCommand

This is a net10-driven build requirement, not a behavior change — no runtime logic is altered by adding partial.

CI

  • x64 — builds and runs unit tests on windows-latest (VS 2026 / MSBuild 18, required by the .NET 10 SDK).
  • arm64 — builds and runs unit tests natively on windows-11-vs2026-arm (VS 2026).
  • The SDK is installed solely from global.json.

Both legs are green.

Note: windows-11-vs2026-arm is currently a GitHub public-preview runner image. If a GA-only runner is required, the arm64 leg can cross-build on windows-latest with arm64 tests skipped.

Copilot AI review requested due to automatic review settings July 27, 2026 03:52

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.

Pull request overview

Pins the repository’s build-time .NET SDK via a root global.json to reduce local/CI drift while keeping the target framework (net9.0-windows) unchanged.

Changes:

  • Add root global.json to select .NET SDK 10.0.110.
  • Configure SDK resolution behavior via rollForward and allowPrerelease.

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

Comment thread global.json Outdated
@yeelam-gordon Gordon Lam (yeelam-gordon) changed the title Pin .NET SDK via global.json Move to .NET 10 (net10.0-windows, SDK 10.0.110) Jul 28, 2026
@yeelam-gordon

Copy link
Copy Markdown
Contributor Author

/azp run

…ion types for CsWinRT ABI projection on net10; remove CsWinRT warning suppressions
@yeelam-gordon

Copy link
Copy Markdown
Contributor Author

/azp run

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