2017-08-15 371 views
6

错误: C:\ WebApp \ WebApp.csproj:错误:SDK'Microsoft.NET.Sdk.Web'指定找不到。 C:\ WebApp \ WebApp.csprojVisual studio 2017更新3 - 指定的SDK'Microsoft.NET.Sdk.Web'找不到

我想打开Dotnet核心项目,我收到上述错误。

我从https://www.microsoft.com/net/core#windowscmd

我已经检查了DOTNET CMD路径安装了最新的SDK,它工作正常。

我错过了什么吗?如果您需要更多信息,请与我们联系。

目标框架设置为.NET 4.5.2

+3

你试过这个吗? https://andrewlock.net/the-sdk-microsoft-net-sdk-web-specified-could-not-be-found/ – Will

+0

我试图删除文章中建议的global.json,它仍然无法正常工作。 – Sundeep

+0

如果它有帮助 - 这个问题也表现为Visual Studio在加载项目ABC.csproj时永久挂起... – Coruscate5

回答

5

正如注释的建议,我更新global.json文件如下所示

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

另外,我不得不删除<ItemGroup>其包含.csproj文件中的wwwroot文件路径。

enter image description here

刷新该项目,它的工作原理就像一个魅力!

+7

删除global.json可能最好的选择,假设你总是想要最新的SDK。在我的情况下,我有一个错位的global.json坐在.net核心项目之上的一个文件夹中(很可能很久以前就错误地放在那里了)。一旦我删除了我的项目再次加载。 – Per

4

我同意Sundeep的回答评论,你的项目中不应该有global.json文件。

似乎安装.NET Core 2.0 SDK正在导致PATH问题。验证C:\Program Files\dotnetC:\Program Files (x86)\dotnet是否在PATH环境变量中。在我的情况下,这些值已经出现在System Variables下,因此我将它们添加到User Variables并重新启动了我的机器。这解决了我的问题。

+0

在我的情况下,我安装了32位运行时和64位SDK,32位(x86)条目在64位之前位于PATH中。在额外安装32位SDK之后,它工作。 – MarkusSchaber

+0

我只安装了64位SDK,但出于某种原因,我只在Path设置中拥有32位条目。我尝试安装32位SDK,但最终我只是在32位之前添加了64位路径。 –

0

我遇到了一个问题,其中创建一个新的ASP.NET Core 2.0项目给了我一个错误指定的SDK'Microsoft.Net.Sdk.Web'找不到,并且让我无法打开项目在Visual Studio中。问题在于该项目是在包含global.json文件的文件夹中创建的,该文件将SDK版本绑定到1.0.0。

删除global.json,或将其更新到2.0.0,修复了问题。一定要检查父文件夹 - 如果任何父文件夹包含global.json,则将使用在“最接近”文件夹中指定的SDK版本。

2

我遇到过同样的问题,我只是重新命名<project sdk="Microsoft.NET.Sdk.web"><project sdk="Microsoft.NET.Sdk">上的csproj

1

我最近多次偶然发现了这个问题。下面是我找到了解决方法(其中一人经常工作到现在)的简短列表:

  1. 安装正确的.NET核心SDK:无论是最新版本,或者通过你的项目所需要的版本。
  2. 清理过时.NET核版本:进入控制面板和卸载以前的.NET核心SDK /运行时版本(只要你不再使用它们)。
  3. 创建一个全局。json文件:使用以下内容将新的global.json文件添加到项目的根目录中(将.NET Core版本替换为要运行该项目的内核版本):

    { “sdk”:{ “版本”: “2.0.5” }}

  4. 重命名SDK参考:打开.proj文件,并替换<project sdk="Microsoft.NET.Sdk"><project sdk="Microsoft.NET.Sdk.web">

  5. 添加MSBuildSDKsPath环境变量:本DOTNET CLI设置MSBuildSDKsPath环境变量调用的MSBuild时:但是,a December 2016 patch改变了CLI行为,以便将尊重现有环境变量,如果它已经被设置:此将允许开发人员“强制”CLI使用特定的SDK。

  6. 检查您的PATH:验证C:\Program Files\dotnetC:\Program Files (x86)\dotnet都在PATH环境变量中。

有关该问题和其他可行性修复的其他信息,read this post

0

我有这个问题,当我不得不在VS2017中打开.Net Core 1.0.4项目。

当我安装1.0.4 SDK,我选择了它放置在SDK文件x64版本“C:\ Program Files文件\ DOTNET” ......

但我VS2017是32位,因此一直在寻找'c:\ Program Files(x86)\ dotnet'中的sdk。

一旦我安装了SDK的32位版本,它工作得很好。

相关问题