Skip to content

Add how-to: Test prerelease .NET SDKs locally with global.json paths#52893

Merged
jfversluis merged 7 commits intodotnet:mainfrom
jfversluis:docs/global-json-local-sdk-paths
Apr 9, 2026
Merged

Add how-to: Test prerelease .NET SDKs locally with global.json paths#52893
jfversluis merged 7 commits intodotnet:mainfrom
jfversluis:docs/global-json-local-sdk-paths

Conversation

@jfversluis
Copy link
Copy Markdown
Member

@jfversluis jfversluis commented Apr 8, 2026

Summary

Adds a new how-to article explaining how to use the sdk.paths property in global.json (new in .NET 10) to install and test prerelease SDKs in a project-local directory without modifying system-wide installations.

What's covered

  • Installing a prerelease SDK with dotnet-install scripts
  • Configuring global.json with the paths property and $host$ fallback
  • Individual command explanations before a combined quick-start command
  • Installing workloads (MAUI, wasm-tools) on the local SDK
  • Team convenience scripts for cross-platform onboarding
  • CI integration with GitHub Actions
  • Cleanup and limitations

Placement

  • Article: docs/core/tools/test-prerelease-sdk-locally.md
  • TOC: Added under ".NET SDK" in docs/navigate/tools-diagnostics/toc.yml, right after the existing "global.json overview" entry

Notes

  • The global.json overview page already documents the paths and errorMessage properties briefly. This article provides a full end-to-end tutorial.
  • All instructions have been tested on a real machine with .NET 11 preview.
  • Aspire workload references intentionally omitted since Aspire 9+ is NuGet package-based and no longer requires a workload.
  • Uses .NET 11 as the example but includes a note that this works with any version.

/cc @dotnet/docs


Internal previews

📄 File 🔗 Preview link
docs/core/tools/test-prerelease-sdk-locally.md Test prerelease .NET SDKs locally with global.json paths
docs/navigate/tools-diagnostics/toc.yml docs/navigate/tools-diagnostics/toc

…n paths

This adds a step-by-step how-to guide for using the sdk.paths property
in global.json (new in .NET 10) to install and test prerelease SDKs in
a project-local directory without modifying system-wide installations.

The article covers:
- Installing a prerelease SDK with dotnet-install scripts
- Configuring global.json with the paths property
- Installing workloads (MAUI, wasm-tools) on the local SDK
- Team convenience scripts for cross-platform onboarding
- CI integration with GitHub Actions
- Cleanup and limitations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jfversluis and others added 4 commits April 8, 2026 13:51
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ate cleanup

- Explain 'host' as the system-wide dotnet installation on first mention
- Remove all ./.dotnet/dotnet fallback instructions after prerequisites
- Simplify workload section to use plain dotnet commands
- Replace duplicate 'Undo all changes' section with link to Clean up
- Add brief mention that paths supports multiple entries
- Remove redundant IMPORTANT callout from quick start section
- Convert quick start intro from TIP callout to plain text

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…h dotnet --info

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Workload commands (install, list) store metadata relative to the dotnet
root of the host process. When using the system host with sdk.paths,
workloads end up in the system installation rather than the local one.
This is a known gap (dotnet/sdk#49825).

Updated all workload examples to use ./.dotnet/dotnet directly, with
an IMPORTANT callout explaining why and linking to the tracking issue.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jfversluis jfversluis marked this pull request as ready for review April 8, 2026 12:45
@jfversluis jfversluis requested review from a team and meaghanlewis as code owners April 8, 2026 12:45
@jfversluis jfversluis requested review from Redth and Copilot April 8, 2026 12:45
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a new how-to article that walks you through using global.json sdk.paths (introduced in .NET 10) to test a prerelease SDK from a project-local install, and links the new article from the tools/diagnostics TOC.

Changes:

  • Adds docs/core/tools/test-prerelease-sdk-locally.md with end-to-end instructions (local install, global.json setup, workloads, CI, cleanup).
  • Updates docs/navigate/tools-diagnostics/toc.yml to include the new article under .NET SDK.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

File Description
docs/core/tools/test-prerelease-sdk-locally.md New how-to article documenting local prerelease SDK testing via global.json sdk.paths.
docs/navigate/tools-diagnostics/toc.yml Adds navigation entry pointing to the new how-to article.

- Add ai-usage: ai-assisted to front matter
- Fix missing space and clarify PATH behavior (session-only, not permanent)
- Reword prerequisite to avoid mixing SDK/host terminology
- Fix inconsistent tab title: 'Windows PowerShell' -> 'Windows (PowerShell)'

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Apply wording suggestions (parentheses style, 'how-to article', remove 'Note that')
- Add backticks to PATH in Limitations section
- Use 'might' instead of 'may' per style guide
- Convert team install scripts to tabbed layout (macOS/Linux + Windows tabs)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jfversluis jfversluis merged commit b20cea3 into dotnet:main Apr 9, 2026
9 checks passed
@jfversluis jfversluis deleted the docs/global-json-local-sdk-paths branch April 9, 2026 08:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants