Install any skill in seconds. Free to start, no credit card required.
Get Started Free →dotnet/setup-local-sdk
Install a .NET SDK locally for safe preview testing, specific-version pinning, or reproducible team setups — without modifying the system-wide installation. USE FOR: trying .NET previews safely, testing specific SDK versions, installing MAUI or other workloads on a preview, updating or replacing an existing local SDK, creating reproducible team/CI install scripts, configuring global.json paths. DO NOT USE FOR: system-wide SDK installs, .NET hosts older than 10, runtime-only installs, or projects
Passed 23 of 25 test cases with the skill, and 12 of 25 without it.
and 10 more in the full report
11 fixed12 passed either way2 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
If I don't want to pin an exact SDK version in `global.json` but simply want `dotnet` commands in this project directory to look in `.dotnet` before falling back to system installs, what is the minimal JSON structure needed in `global.json`?
| Checked | Without skill | With skill |
|---|---|---|
| Provides an sdk object containing paths set to [".dotnet", "$host$"] | Missed | Passed |
The instructions your model reads when the skill loads.
Guide the user through installing a .NET SDK into a project-local .dotnet/
directory and wiring it up via the global.json paths feature (.NET 10+).
The examples use .NET 11, but this works with any version — prerelease or stable.
The result is a fully isolated SDK that:
dotnet commands from the project root.rm -rf .dotnet/ or Remove-Item -Recurse -Force .\.dotnet).dotnet is older than v10 — paths doesn't exist; explain and stop.paths applies to SDK resolution only.| Input | Required | Default | Notes |
|---|---|---|---|
| Channel or version | No | 11.0 | e.g. 11.0, STS, LTS, or an exact version like 11.0.100-preview.2.26159.112 |
| Quality | No | preview | One of: daily, preview, ga |
| jq | No | — | Optional for bash team scripts when patching an existing global.json; without it, do not overwrite the file |
dotnet --version; major ≥ 10.If the user didn't specify, ask what .NET SDK version they want (e.g., "latest
.NET 11 preview" or an exact version like 11.0.100-preview.2.26159.112).
Map the answer to --channel/--quality or --version flags.
test cases passed, vs 12 / 25 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.