Visual Studio 2017 更新 15.3 中的当前 .NET SDK 不支持定位 .NET Standard 2.0 错误

The current .NET SDK does not support targeting .NET Standard 2.0 error in Visual Studio 2017 update 15.3

我想使用 Target Framework .NET Standard 2.0 创建一个 class 库项目。

我已经将我的 Visual Studio 2017 更新为版本 15.3 并且在 Visual Studio 安装程序中手动检查了 .NET Framework 4.7 SDK.NET Framework 4.7 targeting pack 并安装了它们。

Project/Application window 中的目标框架组合框中仍然没有 .NET Standard 2.0 选项。所以我将 .csproj 文件中的 TargetFramework 标签手动更改为 netstandard2.0,但在尝试构建后我得到了这个错误:

The current .NET SDK does not support targeting .NET Standard 2.0. Either target .NET Standard 1.6 or lower, or use a version of the .NET SDK that supports .NET Standard 2.0.

听起来好像安装该特定版本的 VS2017 更新并没有同时安装 .NET Core 2.0 SDK。您可以下载 here.

要检查您已安装的 SDK 版本,运行

dotnet --info

从命令行。请注意,如果您当前的工作目录或任何祖先目录中有一个 global.json 文件,它将覆盖哪个版本的 SDK 是 运行。 (例如,如果您想为项目强制执行特定版本,这很有用。)

根据评论判断,某些版本的 VS2017 更新 do 安装 .NET Core SDK。我怀疑它可能会随着时间的推移而有所不同。

当我将 Visual Studio 升级到版本 15.5.1 时,.Net Core SDK 已升级到 2.X,所以这个错误消失了。当我 运行 dotnet --info 时,我现在看到以下内容:

对我来说,解决方案是更改 global.json 中的版本以反映已安装的版本。

像别人说的版本可以在cmd运行dotnet --info中找到

这个:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.0.3"
  }
}

变成:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.1.4"
  }
}

您也可以通过 运行

创建 global.json 文件
dotnet new globaljson --sdk-version 2.1.4

在项目的根目录下

我有同样的问题,并且有最新版本 微软 Visual Studio 社区 2017 版本 15.7.3

我刚刚下载了最新的 SDK 2.1,不再有定位问题。 https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.1.301-windows-x64-installer

信息: 微软 Visual Studio 社区 2017 版本 15.7.3 VisualStudio.15.Release/15.7.3+27703.2026 微软.NET框架 版本 4.7.03056

已安装版本:社区

C# 工具 2.8.3-beta6-62923-07。提交哈希:7aafab561e449da50712e16c9e81742b8e7a2969 IDE 中使用的 C# 组件。根据您的项目类型和设置,可能会使用不同版本的编译器。

通用 Azure 工具 1.10 提供 Azure 移动服务和 Microsoft Azure 工具使用的通用服务。

NuGet 包管理器 4.6.0 Visual Studio 中的 NuGet 包管理器。有关 NuGet 的更多信息,请访问 http://docs.nuget.org/.

ProjectServicesPackage 扩展 1.0 ProjectServicesPackage Visual Studio 扩展详细信息

资源包扩展 1.0 ResourcePackage Visual Studio 扩展详细信息

Visual Basic 工具 2.8.3-beta6-62923-07。提交哈希:7aafab561e449da50712e16c9e81742b8e7a2969 IDE 中使用的 Visual Basic 组件。根据您的项目类型和设置,可能会使用不同版本的编译器。

Visual Studio 代码调试适配器主机包 1.0 用于在 Visual Studio

中托管 Visual Studio 代码调试适配器的互操作层

Visual Studio Unity 3.7.0.1 工具 Visual Studio Unity 工具

当我试图打开我的旧项目时,有时会发生这种情况,对我有帮助的是更改项目目标框架。 转到 Project -> projectname Properties... 并将 Target 框架更改为您已安装的框架。

虽然以上回答没有解决我的问题。我终于解决了这个问题,专门转到 link https://www.microsoft.com/net/download/visual-studio-sdks 并下载 Visual Studio 所需的 sdk。这真的很令人困惑,我不明白为什么,但这解决了我的问题

卸载一些 .NET Core 1.x 预览版 SDK 后,我刚刚在 15.8.3 上遇到了这个问题,我的应用程序无法编译并显示错误。

尽管我使用的是 Windows 10 x64,但已通过安装最新的 x86 版 SDK 解决了这个问题。

我认为这是因为 VS 2017 仍然是一个 x86 程序,虽然程序 运行 作为 x64,但编译器正在寻找合适的 x86 SDK

实际上,对我来说,它的发生方式与另一个答案相反。

安装了最新的.NET Core SDK在问题出现之前(3.0 .0-preview2 在我的例子中)没有最新版本的 Visual Studio(不确定这是否会有任何不同)。

因此,解决方案只是卸载最新的 .NET Core SDK。 (如果您需要,这并不完美,因此您可以考虑 Visual Studio 升级到最新版本,但至少解决了持续存在的问题)。

这对我有用

使用 Visual Studio

installation

在“工作负载”选项卡上选中“.Net Core 跨平台开发”并单击“修改”

别忘了勾选左侧菜单中的“.NET Core 2.0 开发工具”

Source

备注

我之前安装了Asp Net Core,但是在我的Visual Studio上没有出现,在我安装后Visual Studio出现了

我刚刚经历了这个麻烦。就我而言,我有一个工作脚本

SET devenvPath=C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\devenv.exe
"%devenvPath%" mySolution.sln /Rebuild "DebugWithUT|AnyCpu" /Out mySolution.Build.log

今天我开始收到这个确切的错误。但是现在我记得前一天安装​​了 VS2019。看起来它为 VS2017 改变了一些东西。我去了 VS2017 更新,安装了最新的 version/update 并修复了它。

确保为 visual studio 下载 x86 SDK 而不是只下载 x64 SDK。

我安装了 Visual Studio 2019 和 2017。我尝试分别为 VS2017 安装 .NET Core 2.X SDK,但没有成功。

问题是,我安装了 .NET Core 3.0 SDK 作为默认 sdk 版本,VS2017 不喜欢它。

我的解决方案是针对特定项目切换 SDK 版本。

  • 首先,列出您安装的 SDK 以找到所需的版本
$ dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.1.100
 Commit:    cd82f021f4

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.18362
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk.1.100\

Host (useful for support):
  Version: 3.1.0
  Commit:  65f04fb6db

.NET Core SDKs installed:
  1.1.14 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.509 [C:\Program Files\dotnet\sdk]
  2.2.110 [C:\Program Files\dotnet\sdk]
  3.0.100 [C:\Program Files\dotnet\sdk]
  3.1.100 [C:\Program Files\dotnet\sdk]
  • 来自您的解决方案目录
$ dotnet new globaljson --sdk-version 2.2.110 --force

现在,dotnet 将为此解决方案使用指定的 SDK 版本。

我还没有找到一种方法来在系统范围内执行此操作,同时又不会弄乱我的 3.0 项目。

我遇到了同样的问题,因为当前的 .NET SDK 不支持面向 .NET Core 3.1。以 .NET Core 1.1 或更低版本为目标,或者使用支持 .NET Core 3.1

的 .NET SDK 版本

1) 确保您的机器上安装了.Net core SDK。 Download .NET!

2) 如下设置PATH环境变量 Path

我在尝试在 TFS 中构建解决方案时遇到了这个问题。我们正在使用“dot net publish”任务。使用 msbuild 为我们打破僵局。

我遇到了同样的问题,我是这样解决的:

  1. 为 Visual Studio 2017 安装了 .NET Core 2.2 SDK。您可以从这个 link 下载它: https://dotnet.microsoft.com/en-us/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral
  2. 转到项目 -> 属性 > 目标框架

现在我的2.0缺失目标框架符合条件,我选择了它,问题就解决了。