'Unable to locate the .NET SDK as specified by global.json, please check that the specified version is installed

trying to start a .NET console application. Would prefer F# but get the same error in C# or VB as well.

Unable to locate the .NET SDK as specified by global.json, please check that the specified version is installed. I get that warning as soon as I create a new application, and get it as an error when I try to build.

This is using the default Hello World templates that come with Visual Studio. I would expect the prebuilt templates that ship with the app to build first time. Using VS 2019 16.8.5.

I have searched Visual Studio project and the source directory and can't find any global.json.

The errors

EDIT: Found the global.json at C:\users\username

{
  "sdk": {
    "version": "3.1.300",
    "rollForward": "latestMinor"
  }
}

Which I'm fairly sure I have the SDK installed for but will double check.



Solution 1:[1]

I would advise removing that global.json file instead of just adding latestMajor to it, since it's in a place where it probably shouldn't be. Having one in the root of C:\users\your-name with that value is functionally equivalent to not having it in the first place.

The general purpose of a global.json file is to lock down the SDK version used for a specific codebase. For example, this can be helpful if you're using a CI system that can install a .NET SDK based on a global.json file, so you don't have multiple places to update your toolset over time.

Solution 2:[2]

Check rollForward is disabled or not If disabled the make it latestMinor

"rollForward": "latestMinor"

Solution 3:[3]

In my case my global.json was referring to an SDK I didn't have. Run the below in terminal

dotnet --list-sdks

That will give you the list of all the SDK's available update your global.json file to the version you have

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Phillip Carter
Solution 2 Sameer Bahad
Solution 3 Ricky G