Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Visual studio 2017 Update 3 - The SDK 'Microsoft.NET.Sdk.Web' specified could not be found

Error:

C:\WebApp\WebApp.csproj : error : The SDK 'Microsoft.NET.Sdk.Web' specified could not be found. C:\WebApp\WebApp.csproj

I am trying to open Dotnet core project and I am getting the above error.

I have installed the latest SDK from https://www.microsoft.com/net/core#windowscmd

I have checked the path for dotnet cmd and it works fine.

Am I missing something? Let me know if you need more information.

The target framework is set to .NET 4.5.2

like image 562
Sundeep Avatar asked Aug 15 '17 13:08

Sundeep


4 Answers

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):

  1. Install the right .NET Core SDK: Either the latest version or the version required by your project.
  2. 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).
  3. 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" } }

  4. Rename the SDK reference: Open your .proj file and replace <project sdk="Microsoft.NET.Sdk.web"> with <project sdk="Microsoft.NET.Sdk"> .

  5. 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.

  6. Check your PATH: Verify that both C:\Program Files\dotnet and C:\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.

like image 134
Darkseal Avatar answered Oct 13 '22 00:10

Darkseal


I agree with the comment on Sundeep's answer, you shouldn't have a global.json file in your project anymore.

It seems as though installing the .NET Core 2.0 SDK is causing issues with the PATH. Verify that C:\Program Files\dotnet and C:\Program Files (x86)\dotnet are in the PATH environment variable. In my case, these values were already present under System Variables so I added them to User Variables and rebooted my machine. This resolved my issue.

like image 35
AperioOculus Avatar answered Oct 13 '22 00:10

AperioOculus


As suggested in the comment, I updated global.json file as shown below

{
  "sdk": {
  "version": "1.0.0"
 } 
}

Also, I had to remove the <ItemGroup> which contains wwwroot files path in .csproj file.

enter image description here

Reload the project and it works like a charm!

like image 38
Sundeep Avatar answered Oct 13 '22 00:10

Sundeep


I've encountered the same problem, I just rename <project sdk="Microsoft.NET.Sdk.web"> to <project sdk="Microsoft.NET.Sdk"> on csproj


another situation: https://stackoverflow.com/a/55529011/2971851

issue details: 2.1.6xx & 2.2.2xx version of the SDKs are only supported on Visual Studio 2019. VS 2017 needs 2.1.5xx & 2.2.1xx versions of the SDK.

How to fix the issue? Install 2.1.5xx version of the SDK if you are targetting a 2.1 app Install 2.2.1xx version of the SDK if you are targetting a 2.2 app.

and according to the official document:

Note: If you are a Visual Studio user, there are MSBuild version requirements so use only the .NET Core SDK supported for each Visual Studio version. If you use other development environments, we recommend using the latest SDK release.

like image 42
Steven Chou Avatar answered Oct 13 '22 00:10

Steven Chou