Files
DodoSSH/global.json
T
jaap-janandClaude Opus 5 71c0bd8882
ci / build and test (push) Failing after 2m27s
ci / api image (push) Skipped
ci / android head (push) Failing after 52s
Ask global.json for an SDK version that exists
setup-dotnet refused the file outright: "Version '10.0.0' is not valid for the 'sdk.version'
value in global.json. When 'rollForward' is specified, a full SDK version is required."

It is right, and the mistake is a category one rather than a typo. 10.0.0 is a runtime
version; SDK versions carry a feature band, so the first SDK of this major is 10.0.100 and
there has never been a 10.0.0 to roll forward from. The local dotnet accepted it because it
resolves a floor loosely, which is exactly why this survived to CI — nothing on a developer
machine ever disagreed with it.

10.0.100 with the same latestMinor keeps what the file meant: any 10.x SDK, newest wins.
Verified against both SDKs in play, 10.0.109 locally and 10.0.302 in the build container.

Left floating rather than pinned, and worth being honest that this is the shakier half.
IsTrimmable on Contracts and Crypto pulls in Microsoft.NET.ILLink.Tasks, whose version
tracks the SDK's patch and is therefore written into packages.lock.json — so the day a
newer 10.x SDK appears on the runner, --locked-mode fails until the lock files are
regenerated against it. Pinning an exact version with rollForward disabled would end that,
at the cost of everyone installing that SDK exactly; it is a real choice and not one to
make silently inside a fix for something else.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 14:07:30 +02:00

7 lines
108 B
JSON

{
"sdk": {
"version": "10.0.100",
"rollForward": "latestMinor",
"allowPrerelease": false
}
}