I stumbled upon this issue a number of times recently. Here’s a brief list of the workaround I found (one of them always worked until now):
- Install the right .NET Core SDK: Either the latest version or the version required by your project.
- Clean-up obsolete .NET Core versions: Go to Control Panel and uninstall previous .NET Core SDK/Runtime versions (as long as you don’t use them anymore).
-
Create a Global.json file: Add a new global.json file to your project’s root with the following content (replace the .NET Core version build with the one you want to run the project with):
{
“sdk”: {
“version”: “2.0.5”
}
} -
Rename the SDK reference: Open your
.proj
file and replace<project sdk="Microsoft.NET.Sdk.web">
with<project sdk="Microsoft.NET.Sdk">
. -
Add the MSBuildSDKsPath Environment Variable: The dotnet CLI sets the MSBuildSDKsPath environment variable when invoking MSBuild: however, a December 2016 patch changed the CLI behaviour so that it will respect an existing environment variable, if it has already been set: this will allow the developer to “force” the CLI to use a specific SDK.
- Check your PATH: Verify that both
C:\Program Files\dotnet
andC:\Program Files (x86)\dotnet
are in the PATH environment variable.
For additional info regarding the issue and other viable fixes check out this blog post that I wrote on this topic.