I've read many articles, including this one, yet I can't still figure out what's the difference, and they have not explained it either in simple terms or at all.
Can someone please clarify what's the difference between .NET SDK and .NET Runtime?
Update: Using comparisons would be very appreciated. Analogy alongside simple English is highly educational.
When you install SDK you also get runtime in that. Check this below, this is what gets installed when we install SDK.
The following were installed at C:\Program Files\dotnet • .NET Core SDK 2.2.100 • .NET Core Runtime 2.2.0 • ASP.NET Core Runtime 2.2.0
adding to stormwild's answer in case you have only the .Net Core Runtime installed you will receive the following output from dotnet --info
As summary: If you install SDK, you will have everything you need for development and running the app.
The SDK usually includes documentation and other help files. The runtime contains only the binary files for the installation.
According to the .Net Core Guide, .NET Core is composed of the following items
The SDK is all of the stuff that is needed/makes developing a .NET Core application easier, such as the CLI and a compiler.
The runtime is the "virtual machine" that hosts/runs the application and abstracts all the interaction with the base operating system.
Only the latter is required to run the application, but the former is needed to develop the application.
Sharing from Rick Strahl's post: Which .NET Core Runtime Download do you need?
Only the .NET Core Runtime is required to run an application and provides information about the install.
To develop, build and publish an application will require an SDK.
If the command fails it means you do not have the .NET Core runtime installed or available in the system's PATH.
Below is a sample output of the command.
Installing an SDK also installs the runtime.
macOS homebrew specific
Installing the homebrew-cask dotnet will conflict with the dotnet-sdk, so to get both the runtime, and the sdk install dotnet-sdk
In short, the runtime will allow your OS to run compiled C-Sharp, C# programs, and the sdk will allow you to compile programs written in C-Sharp, C#.
References: