使用 Blazor Asp.NetCore 托管模板时获取 "NETSDK1045 The current .NET SDK does not support .NET Core 3.0 as a target"

Getting "NETSDK1045 The current .NET SDK does not support .NET Core 3.0 as a target" when using Blazor Asp.NetCore hosted template

我已经安装了 .NetCore 3.0 的预览版,并在 Visual Studio 2019 年尝试 运行 blazor 模板 Blazor (ASP.NET Core hosted)

发生的错误如下:

NETSDK1045 The current .NET SDK does not support .NET Core 3.0 as a target. Either target .NET Core 2.2 or lower, or use a .NET SDK version that supports .NET Core 3.0.

在此comment之后,我设法通过在 x64 版本的基础上安装 x86 版本的 .NET Core 3.0 来解决问题。重新启动 Visual Studio (2019) 后构建工作正常。

我遇到了同样的错误并通过检查选项 "Use previews of the .NET Core SDK (requires restart)" 解决了它。 打开工具 > 选项,然后根据您的 Visual Studio 版本尝试查看 "Preview Features" 或“.Net Core”。 注意 VS 更新,他们可以禁用它。

在这些天里,我不得不在许多不同的开发中克服这个问题machines/containers:最终,我发现不少于 6 个不同的原因可能导致这种错误:

  1. 缺少 .NET Core 3 SDK(x86 或 x64)
  2. .NET Core SDK 预览支持未在 VS2019 中启用
  3. VS2017 而不是 VS2019
  4. PATH 环境变量中的错误 SDK 路径
  5. MSBuildSDKsPath 环境变量中的错误 SDK 路径
  6. 项目的 global.json 文件中的 SDK 版本错误

这些情况的解决方法非常容易理解,您基本上必须安装正确的 SDK 或删除 "offending" SDK 参考。但是,我已尽力将它们全部记录在我的博客 this post 中。

这是一个非常老套的解决方案,但至少它起作用了。假设您已经安装了 3.0.100-rc1-014190 的 SDK。它按预期出现在 dotnet --list-sdks 中,但似乎仍未被 Visual Studio 检测到,并且在尝试从 dotnet CLI 构建或测试任何内容时遇到相同的 NETSDK1405 错误。

查看您的 dotnet SDK 安装目录(通常是 C:\Program Files\dotnet\sdk)。您应该会在其中看到您的预览版 SDK。创建一个副本或重命名现有文件夹以删除预览版本后缀。例如 3.0.100-rc1-014190 会变成 3.0.100,像这样:

这样做使 .Net Core 3 预览版支持最终在 VS2019 预览版 4 和我的 dotnet CLI 中工作。

对我来说,就像在 Visual Studio 2019 年启用预览一样简单。不幸的是,我认为大多数显示如何执行此操作的 post 都已经过时了。我终于遇到了这个堆栈溢出 post How to enable .NET Core 3 preview SDK in VS2019? 他们移动了复选框,默认情况下它对我来说没有打开。

这是一个令人沮丧的追踪问题,在对 VS 进行了所有更新后仍然无法安装,我追踪到一个环境变量。尝试删除 MSBuildSDKsPath,看看是否能解决您的问题。

对我来说,解决方案是删除路径变量 MSBuildSDKsPath - 由于探索了预览版 sdks,我在某些时候声明了该变量以修复另一个 sdk 错误 - 似乎强制设置了使用的版本。所以在我的例子中它被设置为 3.0.100 并在尝试使用 3.1.300

时导致错误