Document the exact .NET SDK version required to build - #136
Merged
Jason Williams (WilliamsJason) merged 1 commit intoAug 12, 2026
Merged
Conversation
README told contributors to install the .NET 10 SDK `or the latest version`, but global.json pins 10.0.203 with `rollForward: disable`. Following the README therefore produced a build that refuses to run. State the exact version, show the error it produces, and explain why the pin exists: the projects restore with NuGet lock files, so a looser pin would let different SDKs resolve different transitive versions and emit spurious packages.lock.json diffs in unrelated pull requests. Docs only. No build or project changes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
elahmed-microsoft
approved these changes
Aug 12, 2026
Jason Williams (WilliamsJason)
deleted the
jaswill-microsoft-gdk-release-changes
branch
August 12, 2026 20:31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes a documentation bug that makes the build instructions unfollowable.
Problem
README.mdtold contributors:But
global.jsonpins the SDK exactly:rollForward: disablepermits no roll-forward at all — not even a patch. Soor the latest versionis precisely what the repository forbids. A contributor who follows the README installs a newer SDK and everydotnet build,dotnet testanddotnet restorein the repo fails with:CI never hits this, which is why it went unnoticed: Azure Pipelines uses
UseDotNet@2withuseGlobalJson: trueand the GitHub Actions workflow usesactions/setup-dotnet@v5withglobal-json-file: global.json. Both install the pinned SDK on demand. Only humans are affected.Why the pin is kept rather than loosened
Loosening to
rollForward: latestFeaturewould fix the symptom but was rejected after testing. Every project setsRestorePackagesWithLockFile, and different SDK versions resolve different transitive package versions. Restoring this repo under 10.0.303 rewrites all fourpackages.lock.jsonfiles (Microsoft.NET.ILLink.Tasks10.0.7 → 10.0.11). A looser pin would let contributors on different SDKs generate conflicting lock files and leak unrelatedpackages.lock.jsondiffs into pull requests.Verified after installing 10.0.203: a clean build of the solution produces 0 warnings, 0 errors and no lock file churn at all. That confirms the pin is doing real work, so the fix is to document it accurately rather than weaken it.
Change
Docs only.
README.mdnow:global.jsonNo build, project, or dependency changes.
global.jsonis intentionally untouched.