找不到指定的 SDK "Microsoft.NET.Sdk"

The Specified SDK "Microsoft.NET.Sdk" was not Found

所以我使用的是未安装 Visual Studio 的 Rider,它在 .NET 上运行良好 但对于 .NET Core,我收到错误:

Project 'Test2' load failed: Das angegebene SDK "Microsoft.NET.Sdk" wurde nicht gefunden. → (the specified SDK "Microsoft.NET.Sdk" was not found) C:\Users****\RiderProjects\Test2\Test2\Test2.csproj at (0:0)

项目创建设置:

加载项目失败时的错误:

(蓝色下划线表示“找不到指定的SDK“Microsoft.NET.Sdk””)

Rider 工具集和构建设置:

已安装的 .Net Core 版本:

骑士版本:JetBrains Rider 2018.1.4 Build #RD-181.5550.7

希望它足够详细,你们可以帮助我修复这个错误:)

@alphaaxmet

您使用的是自定义 MSBuild 版本

检查您的 MSBuildSDKsPath 环境。变量,它应该等于你最新的 .net core sdk 的路径,例如:C:\Program Files\dotnet\sdk.1.302

感谢@Damir Beylkhanov 和@Jura Gorohovsky 的回答,如果您遇到未找到指定的 SDK“Microsoft.NET.Sdk” 错误并且您已在 上安装 JetBrains Rider 2019JetBrains Rider 2020Dot NET Core 3.1 Windows 10 64 位,请参阅下面有关如何修复该问题的说明;

您需要使用 Dot NET Core 3.1 附带的 MSBuild 而不是安装的 Dot 提供的那个NET 运行时 3.x 或 4.x

下面是如何找到并添加 Rider Jetbreains IDE 所需的 MSBuild,如果您是使用 Dot NET Core 3.1.

我正在使用 Windows 10 64 位 OS 和 JetBrains Rider 2019.2.3 我不知道这是否适用于其他 Windows 平台或以前版本的 JetBrains Rider。

对于基于 64 位的 Windows10,安装 Dot NET Core 3.1 后,您的 MSBuild.dll将在此路径 C:\Program Files\dotnet\sdk.1.100

您也可以考虑将路径 C:\Program Files\dotnet\sdk.1.100 添加到您的环境变量中。

下面是操作方法。

  1. 在 JetBrains Rider 2019.2.3

    中单击 工具设置
  2. 向下滚动并找到 构建、执行、部署 单击它展开它。

  3. 向下滚动并找到 工具集和构建,然后单击将其打开。

  4. 打开 Toolset and Build 后,在下方找到编辑选项 Use MSBuild version 并单击右侧的自定义 按钮可浏览您要使用的 MS 内部版本。

  5. 浏览到安装 Dot NET Core 3.1 的路径和 select MSBuild dll 文件。在我的例子中是这条路径 C:\Program Files\dotnet\sdk.1.100.

  6. select编辑随 Dot NET Core 3.1 安装的 MSBuild.dll 后,单击确定 并确定任何其他打开 windows 然后再次 运行 您的项目。现在应该可以正常使用了。

请参阅下面的屏幕截图,了解 以红色圈出的位置 以执行与我在 JetBrains Rider IDE 上执行的相同过程。此处的相同屏幕截图还显示了 MSBuild.dll 在我的 Windows 台式计算机中的路径。

我在尝试加载针对 .NET 核心的项目(Project Sdk 属性 Microsoft.NET.Sdk)时遇到此错误。出现这个问题时我的环境如下:

  1. .NET Core SDK 2.1.103 到 3.1.102 安装
  2. 已安装 JetBrains Rider 2019.3.4
  3. Visual Studio 已安装 2019 Professional 16.4.5

虽然 VS 2019 一直抱怨缺少 SDK,但 Rider 能够完全正常地打开项目和解决方案。这是一个包含 2 个项目的解决方案,都使用 SDK 作为 Microsoft.NET.Sdk。然后,我在 VS 2019 中打开了一个包含 Web 项目的解决方案,即 Microsoft.NET.Sdk.Web。 VS 2019 显示提示说我需要安装额外的工作负载。当我单击确定时,VS 安装程序启动并自动在工作负载下选择 "ASP.NET and web development"。安装完成后,web项目正常打开,但是使用Microsoft.NET.Sdk作为SDK的项目继续报错缺少SDK。

在进一步研究中,我发现 this github issue @akshita31 建议安装 .NET 核心构建工具。以下是:

  1. 我重新启动了 VS 2019 安装程序
  2. 在 "Other Toolsets" 下查看(在安装程序工作负载选项卡的底部滚动)并选中“.NET Core 跨平台开发”并继续执行。
  3. 安装程序完成后,VS 2019 可以毫无问题地打开所有项目

我在使用 build tools docker container 时遇到了同样的错误,它只安装了 azure 构建工具工作负载 - 而不是 Microsoft.Net.Sdk 项目所需的 netcore 构建工具。

解决方案——修改dockerfile

我的解决方法是 add the Component ID Workload for NetCore Build Tools dockerfile 配置

RUN C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache `
    --installPath C:\BuildTools `
    --add Microsoft.VisualStudio.Workload.AzureBuildTools `
    # <append the line below>
    --add Microsoft.VisualStudio.Workload.NetCoreBuildTools `