The global.json
file is a configuration file used in .NET development to specify the version of the .NET SDK to use for building and running projects within a directory and its subdirectories. Here's a brief overview:
Version Control:
global.json
is typically committed to version control alongside the project's source code. It ensures consistency in the development environment across different machines and team members by enforcing the use of a specific .NET SDK version.Directory Scope: Placed in the root directory of a project or solution,
global.json
affects the .NET SDK version used within that directory and its subdirectories. It allows projects within the same solution to use different .NET SDK versions if necessary.Syntax: The
global.json
file is a simple JSON file that contains a single property,sdk
, specifying the desired .NET SDK version. For example:
{
"sdk": {
"version": "6.0.0"
}
}
SDK commands include dotnet new
and dotnet run
. The .NET CLI must choose an SDK version for every dotnet
command. It uses the latest SDK installed on the machine by default, even if:
- The project targets an earlier version of the .NET runtime.
- The latest version of the .NET SDK is a preview version.
You can take advantage of the latest SDK features and improvements while targeting earlier .NET runtime versions. You can target different runtime versions of .NET using the same SDK tools.
On rare occasions, you may need to use an earlier version of the SDK. You specify that version in a global.json
file. The "use latest" policy means you only use global.json
to specify a .NET SDK version earlier than the latest installed version.
The process for selecting an SDK version is:
dotnet
searches for a global.json file iteratively reverse-navigating the path upward from the current working directory.dotnet
uses the SDK specified in the first global.json found.dotnet
uses the latest installed SDK if no global.json is found.