In this article, we will learn how to check if .NET is already installed on both Windows and Linux.

Some developers find it difficult to understand which components of .NET need to be installed before the development starts. This is often the case with beginners.

Understanding .NET SDK and .NET Runtime

The .NET projects are associated with a software development kit, also known as .NET SDK. Each project SDK is a set of builds with associated tasks that are responsible for compiling, generating binaries, and publishing code.

Usually, there are different SDKs available for each type of project. For example, there are SDKs for Web, Blazor, Windows Desktop, etc. 

The .NET SDK is the base SDK for .NET and all the others reference it. We could author our own SDK and distribute it via NuGet, for instance.

Along with the SDK, we’ll find another component when installing .NET, the Runtime. The Runtime contains the components needed to run our existing applications. 

Display .NET SDK Versions on Windows

After installing any supported version on the .NET download page we can easily see which versions of the .NET SDK are installed with a terminal. Make sure to install SDK and runtime prior to running these commands.

Let’s open a terminal and run the command: dotnet --list-sdks , this way we can list the SDKs installed on our machine:

C:\> dotnet --list-sdks
3.1.415 [C:\Program Files\dotnet\sdk]
3.1.415 [C:\Program Files\dotnet\sdk]
5.0.403 [C:\Program Files\dotnet\sdk]
5.0.403 [C:\Program Files\dotnet\sdk]
6.0.100-preview.7.21379.14 [C:\Program Files\dotnet\sdk]
6.0.100-preview.7.21379.14 [C:\Program Files\dotnet\sdk]

Display .NET Runtime Versions on Windows

After installing any supported runtime version on the .NET download page we can easily see which versions of the .NET Runtime are installed with a terminal.

Let’s open a terminal and run the command dotnet --list-runtimes, this way we can list the runtimes installed on our machine:

C:\> dotnet --list-runtimes
Microsoft.NETCore.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.0-preview.7.21378.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.0-preview.7.21378.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Check .NET Information on Windows

Usually, when we install .NET on Windows there is a standard folder such as the paths described below:

  • Executable
    C:\Program Files\dotnet
  • SDK
    C:\Program Files\dotnet\sdk\
  • Runtime
    C:\Program Files\dotnet\shared

Alternatively, we can run the command dotnet --info to list both the SDK and runtime versions. This command encapsulates both dotnet --list-sdks and dotnet --list-runtimes commands at once:

C:\> dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.100-preview.7.21379.14
 Commit:    22d70b47bc

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.22523
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\6.0.100-preview.7.21379.14\

Host (useful for support):
  Version: 6.0.0-preview.7.21377.19
  Commit:  91ba01788d

.NET SDKs installed:
...

.NET runtimes installed:
...

Display .NET SDK Versions on Linux

Now, let’s check the installation of the .NET SDK and its runtime on Linux. In this article, we are using Ubuntu 20.04.

Let’s open a terminal and run the dotnet --list-sdks command:

mrrobot@LAPTOP-F5CNACI3:/mnt$ dotnet --list-sdks
6.0.101 [/usr/share/dotnet/sdk]

As we can see the information is there, but the path is different.

Display .NET Runtime Versions on Linux

We can list which versions of the .NET runtime are installed with the dotnet --list-runtimes command:

mrrobot@LAPTOP-F5CNACI3:/mnt$ dotnet --list-runtimes
Microsoft.AspNetCore.App 6.0.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Check .NET Information on Linux

Usually, when we install .NET on Linux there is a standard folder such as the paths described below:

  • Executable
    /home/user/share/dotnet/dotnet
  • SDK
    /home/user/share/dotnet/sdk/{version}/
  • Runtime
    /home/user/share/dotnet/shared/{runtime-type}/{version}/

Again, we can run the command dotnet --info to list both the SDK and runtime versions:

mrrobot@LAPTOP:/mnt$ dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.101
 Commit:    ef49f6213a

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  20.04
 OS Platform: Linux
 RID:         ubuntu.20.04-x64
 Base Path:   /usr/share/dotnet/sdk/6.0.101/

Host (useful for support):
  Version: 6.0.1
  Commit:  3a25a7f1cc

.NET SDKs installed:
...

.NET runtimes installed:
...

Conclusion

In this article, we’ve covered some ways to check if .NET is already installed on both Windows and Linux environments by using the .NET CLI.

This content is available exclusively to members of Code's Patreon at $0 or more.