From c6a0868d75365d7ec3e33aca26e76fdc37dd314c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Mar 2026 19:49:59 +0000 Subject: [PATCH 1/3] Initial plan From 2280db4d0f5102fc200c97ec5d1469ac6f9efdcb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Mar 2026 19:52:56 +0000 Subject: [PATCH 2/3] Update global.json docs to clarify muxer vs MSBuild SDK resolver search logic Co-authored-by: meaghanlewis <10103121+meaghanlewis@users.noreply.github.com> --- docs/core/tools/global-json.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/core/tools/global-json.md b/docs/core/tools/global-json.md index 52d89063aa5c1..0862f065ccc92 100644 --- a/docs/core/tools/global-json.md +++ b/docs/core/tools/global-json.md @@ -2,7 +2,7 @@ title: global.json overview description: Learn how to use the global.json file to set the .NET SDK version when running .NET CLI commands. ms.topic: how-to -ms.date: 10/22/2025 +ms.date: 03/05/2026 ms.custom: "updateeachrelease" ai-usage: ai-assisted --- @@ -23,7 +23,10 @@ If you always want to use the latest SDK version that is installed on your machi } ``` -The .NET SDK looks for a *global.json* file in the current working directory (which isn't necessarily the same as the project directory) or one of its ancestor directories. +Two components within the .NET SDK search for a *global.json* file, each starting from a different location and searching up through ancestor directories: + +- **The .NET SDK muxer** (which handles `dotnet` CLI commands) starts from the current working directory, which isn't necessarily the same as the project directory. +- **The .NET MSBuild project SDK resolver** (which resolves project SDKs during builds) starts from the directory that contains a solution file, if one is available. If no solution file is present, it starts from the directory that contains the current project file. If neither is available, it falls back to the current working directory. For information about specifying the runtime version instead of the SDK version, see [Target frameworks](../../standard/frameworks.md). From 1eebed56771575f3d3723d767cb1463c43c74597 Mon Sep 17 00:00:00 2001 From: "Meaghan Osagie (Lewis)" Date: Mon, 9 Mar 2026 10:07:17 -0700 Subject: [PATCH 3/3] Update docs/core/tools/global-json.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/core/tools/global-json.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/core/tools/global-json.md b/docs/core/tools/global-json.md index 0862f065ccc92..e0bd7e671b855 100644 --- a/docs/core/tools/global-json.md +++ b/docs/core/tools/global-json.md @@ -23,10 +23,10 @@ If you always want to use the latest SDK version that is installed on your machi } ``` -Two components within the .NET SDK search for a *global.json* file, each starting from a different location and searching up through ancestor directories: +You rely on two components in the .NET SDK to search for a *global.json* file. Each component starts from a different location and searches up through ancestor directories: -- **The .NET SDK muxer** (which handles `dotnet` CLI commands) starts from the current working directory, which isn't necessarily the same as the project directory. -- **The .NET MSBuild project SDK resolver** (which resolves project SDKs during builds) starts from the directory that contains a solution file, if one is available. If no solution file is present, it starts from the directory that contains the current project file. If neither is available, it falls back to the current working directory. +- **.NET SDK muxer** handles `dotnet` CLI commands. It starts from the current working directory, which isn't necessarily the same as the project directory. +- **.NET MSBuild project SDK resolver** resolves project SDKs during builds. It starts from the directory that contains a solution file, if one exists. If no solution file exists, it starts from the directory that contains the current project file. If neither file exists, it uses the current working directory. For information about specifying the runtime version instead of the SDK version, see [Target frameworks](../../standard/frameworks.md).