【问题标题】:Visual studio 2017 Update 3 - The SDK 'Microsoft.NET.Sdk.Web' specified could not be foundVisual Studio 2017 更新 3 - 找不到指定的 SDK 'Microsoft.NET.Sdk.Web'
【发布时间】:2017-08-15 13:57:52
【问题描述】:

错误:

C:\WebApp\WebApp.csproj:错误:找不到指定的 SDK 'Microsoft.NET.Sdk.Web'。 C:\WebApp\WebApp.csproj

我正在尝试打开 Dotnet 核心项目,但出现上述错误。

我已经从https://www.microsoft.com/net/core#windowscmd安装了最新的SDK

我检查了 dotnet cmd 的路径,它工作正常。

我错过了什么吗?如果您需要更多信息,请告诉我。

目标框架设置为 .NET 4.5.2

【问题讨论】:

  • 你试过了吗? andrewlock.net/…
  • 我尝试按照文章中的建议删除 global.json ,但仍然无效。
  • 如果它有帮助 - 这个问题也表现为 Visual Studio 在Loading project ABC.csproj...上的永久挂起@
  • 今晚 VS 2017 的新更新可能会有答案

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


【解决方案1】:

我最近多次偶然发现这个问题。以下是我找到的解决方法的简要列表(其中一个一直有效):

  1. 安装正确的 .NET Core SDK:最新版本或项目所需的版本。
  2. 清理过时的 .NET Core 版本:转到控制面板并卸载以前的 .NET Core SDK/运行时版本(只要您不再使用它们)。
  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 环境变量:dotnet CLI 在调用 MSBuild 时设置 MSBuildSDKsPath 环境变量:但是,a December 2016 patch 更改了 CLI 行为,以便它尊重现有的环境变量,如果已设置:这将允许开发人员“强制”CLI 使用特定的 SDK。

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

有关此问题和其他可行修复的更多信息,请查看我在此主题上写的 this blog post

【讨论】:

  • 为什么我们需要把两个路径都放到环境变量中?
  • Visual Studio 15.8.2 仍然存在问题。这帮助我解决了问题——它是 global.json 值。删除文件没有帮助,但更新其中的版本号。
  • 在卸载旧版 SDK 之前(第 2 步),请阅读the issues I went through by doing this
  • 在带有 Net Core 3.0 预览版的 Visual Studio 2019 中,我只安装了 x64 版本时遇到了这个问题。检查stackoverflow.com/questions/55741953/…
【解决方案2】:

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

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

【讨论】:

  • 就我而言,我安装了 32 位运行时和 64 位 SDK,32 位 (x86) 条目在 64 位之前位于 PATH 中。额外安装32位SDK后,它工作了。
  • 我只安装了 64 位 SDK,但由于某种原因,我在路径设置中只有 32 位条目。我尝试安装 32 位 SDK,但最终我只是在 32 位之前添加了 64 位路径。
  • 我刚刚在C:\Program Files\dotnet 中重命名了我的dotnet 文件夹并试图找出问题所在。感谢您的回答。而且,C:\Program Files (x86) 中没有 dotnet 文件夹。有趣。
【解决方案3】:

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

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

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

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

【讨论】:

  • 删除 global.json 可能是最好的选择,假设您总是想要最新的 sdk。就我而言,我在 .net 核心项目上方的文件夹中放置了一个放错位置的 global.json(可能很久以前被错误地放置在那里)。一旦我删除了我的项目再次加载。
  • .NET core 中的 global.json 在哪里?
【解决方案4】:

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


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

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

如何解决这个问题?如果您是,请安装 2.1.5xx 版本的 SDK 以 2.1 应用为目标安装 SDK 的 2.2.1xx 版本(如果您是) 以 2.2 应用为目标。

并根据official document

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

【讨论】:

    【解决方案5】:

    不要卸载以前的 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(在em>解决方案资源管理器 (Ctrl+Alt+L))。

    所以我需要v2.2.105 x86安装为mentioned in this answer,以便它显示在该下拉列表中。

    一旦完成,需要 .NET Core v2.2 的解决方案就可以正常工作(Build 正常工作)。

    【讨论】:

      【解决方案6】:

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

      当我安装 1.0.4 SDK 时,我选择了 x64 版本,它将 sdk 文件放在 'c:\Program Files\dotnet' ...

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

      一旦我安装了 32 位版本的 SDK,它就可以正常工作了。

      【讨论】:

      【解决方案7】:

      我遇到了一个问题,即创建一个新的 ASP.NET Core 2.0 项目给我一个错误找不到指定的 SDK 'Microsoft.Net.Sdk.Web',导致我无法在视觉工作室。问题是该项目是在包含 global.json 文件的文件夹中创建的,将 SDK 版本绑定到 1.0.0。

      删除 global.json,或将其更新到 2.0.0,解决了这个问题。请务必检查父文件夹 - 如果任何父文件夹包含 global.json,则将使用“最近”文件夹中指定的 SDK 版本。

      【讨论】:

        【解决方案8】:

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

        通过在 VS Code 中设置 OmniSharp 日志设置进行调试,我能够找到问题所在。一旦我这样做了,我可以看到它没有找到 Microsoft.Build.Resources.dll。

        我通过修复我的 VS 2017 社区安装来安装 MS Build。那解决了它。

        【讨论】:

          【解决方案9】:

          卸载并重新安装 microsoft .NET core SDK。 然后重新启动视觉工作室。 这对我有用。

          【讨论】:

            【解决方案10】:

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

            【讨论】:

              【解决方案11】:

              我已经解决了这个问题, 去这个网站,https://dotnet.microsoft.com/download 在那里,安装 .NET Core Runtime 和 .NET Core SDK。 安装完之后,用管理员打开Visual Studio 2017,问题就解决了?

              【讨论】:

                【解决方案12】:

                我编辑了 .csproj 文件并将本节中的 netcoreapp2.2 更改为 netcoreapp2.1,然后我就可以让它工作了。

                <Project Sdk="Microsoft.NET.Sdk">
                
                  <PropertyGroup>
                    <OutputType>Exe</OutputType>
                    <TargetFramework>netcoreapp2.1</TargetFramework>
                  </PropertyGroup>
                

                【讨论】:

                  【解决方案13】:
                  【解决方案14】:

                  这对我有用:

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

                  【讨论】:

                    【解决方案15】:

                    如果其他人偶然发现了这个问题(包括未来的我),我也遇到了同样的问题,并尝试了这里提出的所有解决方案,但没有任何效果。最后,为我解决问题的是在 C:\Program Files\dotnet\sdk 中删除 NuGetFallbackFolder

                    删除该文件夹后,一切都开始神奇地工作了。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2018-02-17
                      • 2017-09-10
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多