Visual Studio 2017 Update 3 - 无法找到指定的SDK“Microsoft.NET.Sdk.Web”

时间:2017-08-15 13:57:52

标签: .net-core visual-studio-2017

错误:

  

C:\ WebApp \ WebApp.csproj:错误:找不到指定的SDK“Microsoft.NET.Sdk.Web”。 C:\ Web应用程序\ WebApp.csproj

我正在尝试打开Dotnet核心项目,我收到了上述错误。

我已经安装了https://www.microsoft.com/net/core#windowscmd

中的最新SDK

我已经检查了dotnet cmd的路径,它运行正常。

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

目标框架设置为.NET 4.5.2

14 个答案:

答案 0 :(得分:14)

我最近偶然发现了这个问题。这是我找到的解决方法的简要列表(其中一个一直工作到现在):

  1. 安装正确的.NET Core SDK :最新版本或项目所需的版本。
  2. 清理过时的.NET Core版本:转到控制面板并卸载以前的.NET Core SDK / Runtime版本(只要你不这样做)再使用它们。)
  3. 创建Global.json文件:使用以下内容将新的global.json文件添加到项目的根目录中(将.NET Core版本替换为你想用以下方式运行项目:

    {   " sdk":{     "版本":" 2.0.5"   } }

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

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

  6. 检查您的路径:确认C:\Program Files\dotnetC:\Program Files (x86)\dotnet都在PATH环境变量中。
  7. 有关该问题和其他可行修复的其他信息,请查看我就此主题撰写的this blog post

答案 1 :(得分:8)

我同意有关Sundeep答案的评论,您的项目中不应该有global.json个文件。

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

答案 2 :(得分:7)

正如评论中所建议的,我更新了global.json文件,如下所示

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

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

enter image description here

重新加载项目,它就像一个魅力!

答案 3 :(得分:5)

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

另一种情况: https://stackoverflow.com/a/55529011/2971851

  

问题详情:2.1.6xx&amp;仅支持2.2.2xx版本的SDK   在Visual Studio 2019上.VS 2017需要2.1.5xx&amp; 2.2.1xx版本的   SDK。

     

如何解决问题?如果是,请安装2.1.5xx版本的SDK   针对2.1应用程序安装2.2.1xx版本的SDK(如果有)   针对2.2应用程序。

并根据official document

  

注意:如果您是Visual Studio用户,则有MSBuild版本   要求因此只使用每个Visual支持的.NET Core SDK   工作室版本。如果您使用其他开发环境,我们   建议使用最新的SDK版本。

答案 4 :(得分:2)

请勿卸载以前的SDK版本!

当我按照Darkseal's answer中建议的第二步进行操作时,卸载以前的SDK版本,每次打开项目时都会导致"expected imports are missing"致命错误,因此我需要repair my Visual Studio ,因为再次安装旧版SDK一直弹出此错误...

该答案中提到的其他步骤也没有任何区别(环境变量中同时存在dotnet个引用,而我不需要MSBuildSDKsPath)。

安装正确的SDK版本,然后在解决方案的属性中选择它

作为Jyoten mentioned,我使用的是 VS2017 x86 版本,而我的 SDK是x64

但是,这不是唯一的问题,似乎与某些SDK版本和VS2017存在一些不兼容。安装了SDK v2.2.203和v2.2.202之后,当我在项目解决方案中双击 Properties 时,它们将永远不会出现在 Target框架下拉菜单中(在< em> Solution Explorer ( Ctrl + Alt + L ))。

所以我需要v2.2.105 x86的身份安装mentioned in this answer ,以使其显示在该下拉菜单中。

一旦这样做,需要 .NET Core v2.2 的解决方案就可以正常工作(正常运行Build)。

答案 5 :(得分:1)

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

当我安装1.0.4 SDK时,我选择了将sdk文件放在&#39; c:\ Program Files \ dotnet&#39;中的x64版本。 ...

但是我的VS2017是32位,因此在&#c; \ Program Files(x86)\ dotnet&#39;中寻找sdk。

安装完32位版本的SDK后,它运行良好。

答案 6 :(得分:0)

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

删除global.json或将其更新为2.0.0修复了该问题。一定要检查父文件夹 - 如果任何父文件夹包含global.json,那么在&#34;最近的&#34;中指定的SDK版本。文件夹将被使用。

答案 7 :(得分:0)

我在Visual Studio Code中遇到此错误。

通过在VS Code中设置OmniSharp日志设置进行调试,我能够找到问题。一旦完成,我可以看到找不到Microsoft.Build.Resources.dll。

我通过修复VS 2017社区安装来安装MS Build。这样就解决了。

答案 8 :(得分:0)

卸载并重新安装Microsoft .NET Core SDK。 然后重新启动Visual Studio。 这对我有用。

答案 9 :(得分:0)

根据您的Visual Studio和操作系统选择正确的SDK。我从这里https://dotnet.microsoft.com/download/visual-studio-sdks下载了正确的版本,然后.Net Core出现在目标框架列表中(sdk版本和VS版本之间存在严格的依存关系,因此请小心)。

答案 10 :(得分:0)

我已经解决了这个问题, 转到此网站,https://dotnet.microsoft.com/download 在其中,安装.NET Core Runtime和.NET Core SDK。 安装后,请与管理员一起打开Visual Studio 2017,现在问题已经解决?

答案 11 :(得分:0)

我编辑了.csproj文件,并在此节中将netcoreapp2.2更改为netcoreapp2.1,然后我就能够使它工作。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

答案 12 :(得分:0)

答案 13 :(得分:0)

这对我有用:

  1. 确保SDK和Visual Studio所在的.NET文件夹位于 在相同的程序文件(x86)或程序文件中。
  2. 在环境变量中提供SDK的路径。