When developing applications with .NET, you may encounter situations where different projects require different versions of the .NET SDK. The .NET CLI provides a flexible way to manage multiple SDK versions on the same machine, allowing you to switch between them as needed. This guide will walk you through the steps to manage multiple SDK versions using the CLI.

Installing Multiple SDK Versions

The first step in managing multiple SDK versions is to install the versions you need. You can download and install different versions of the .NET SDK from the official .NET download page:

https://dotnet.microsoft.com/download/dotnet

Follow the instructions for your operating system to install the desired SDK versions. You can have multiple versions installed side by side without any issues.

Using global.json to Specify SDK Versions

To manage which SDK version is used for a specific project, you can create a global.json file in the root directory of your project. This file allows you to specify the SDK version that the .NET CLI should use when running commands in that directory.

Step 1: Create a global.json File

Navigate to your project directory using the command line:

cd /path/to/your/project

Create a global.json file with the desired SDK version. You can do this using a text editor or directly from the command line:

echo { "sdk": { "version": "3.1.100" } } > global.json

In this example, replace 3.1.100 with the specific version of the .NET SDK you want to use for this project.

Step 2: Verify the Configuration

After creating the global.json file, you can verify that the CLI is using the specified SDK version by running:

dotnet --version

This command should output the version specified in your global.json file. If the specified version is not installed, the CLI will display an error message indicating that the version is not available.

Using the dotnet --list-sdks Command

To see all the SDK versions installed on your machine, you can use the following command:

dotnet --list-sdks

This command will display a list of all installed SDK versions along with their installation paths. For example:

3.1.100 [C:\Program Files\dotnet\sdk]
5.0.400 [C:\Program Files\dotnet\sdk]

This output shows that both version 3.1.100 and version 5.0.400 of the .NET SDK are installed on the machine.

Switching Between SDK Versions

To switch between SDK versions for different projects, simply create or modify the global.json file in the respective project directories. Each project can have its own global.json file specifying the SDK version it requires.

For example, if you have another project that requires version 5.0.400, navigate to that project's directory and create a new global.json file:

cd /path/to/another/project
echo { "sdk": { "version": "5.0.400" } } > global.json

Conclusion

Managing multiple SDK versions on the same machine using the .NET CLI is a straightforward process that allows you to work on different projects with varying requirements. By utilizing the global.json file, you can specify the SDK version for each project, ensuring that the correct version is used when running commands. This approach helps maintain consistency across projects and reduces the risk of compatibility issues. Understanding how to manage multiple SDK versions is essential for developers working in diverse environments and with various .NET applications.