在 Visual Studio 2017 update 15.3中,当前的.NET SDK 不支持针对.NET Standard 2.0错误

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

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

在 Project/Application 窗口的 Target Framework 组合框中仍然没有 .NET Standard 2.0选项。因此,我将 .csproj文件中的 TargetFramework 标记手动更改为 netstandard2.0,但在尝试构建之后,我得到了这个错误:

当前的.NET SDK 不支持针对.NET Standard 2.0。 目标.NET Standard 1.6或更低版本,或者使用.NET 版本 支持.NET Standard 2.0的 SDK。

144191 次浏览

这听起来像是为该特定版本安装 VS2017更新时没有同时安装。NET Core 2.0 SDK.你可以下载 给你

要检查您已经安装了 SDK 的哪个版本,请运行

dotnet --info

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

根据注释判断,某些版本的 VS2017更新 安装了。NET 核心 SDK。我怀疑随着时间的推移可能会有所不同。

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

enter image description here

对我来说,解决方案是改变 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

项目的根源

我也有同样的问题,而且有最新的版本 MicrosoftVisualStudio 社区2017 版本15.7.3

我刚刚下载了最新的 SDK 2.1,没有更多的目标问题。 Https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.1.301-windows-x64-installer

资讯: MicrosoftVisualStudio 社区2017 版本15.7.3 VisualStudio. 15. Release/15.7.3.27703.2026 微软.NETFramework 版本4.7.03056

安装版本: 社区

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

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

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

ProjectServicesPackage 扩展1.0 ProjectServicesPackage VisualStudio 扩展详细信息

ResourcePackage 扩展1.0 ResourcePackage VisualStudio 扩展详细信息

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

Visual Studio 代码调试适配器主机包1.0 用于在 VisualStudio 中托管 VisualStudio 代码调试适配器的互操作层

Visual Studio Tools for Unity 3.7.0.1 VisualStudioToolsforUnity

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

而上述答案并没有解决我的问题。我最终通过专门访问这个链接 https://www.microsoft.com/net/download/visual-studio-sdks并下载所需的 用于 Visual Studio 的 sdk来解决这个问题。我真的很困惑,我不知道为什么,但这解决了我的问题

我刚刚卸载了一些15.8.3版本。NET Core 1.x 预览 SDK,我的应用程序不会编译,并显示了错误。

虽然我在 Windows10x64上,但是通过安装最新的 x86版本的 SDK 修复了这个问题。

我假设这是因为 VS 2017仍然是一个 x86程序,尽管这些程序以 x64运行,但编译器正在寻找合适的 x86 SDK

事实上,对我来说,这和另一个答案是完全相反的。

我的 安装了 最新的.NET 核心 SDK 在问题出现之前(3.0.0-preview2)没有 Visual Studio 的最新版本(不确定这是否会有什么不同)。

所以 解决方案就是 卸载最新的.NET 核心 SDK。 (如果需要,这并不完美,所以您可以考虑将 Visual Studio 升级到最新版本,但至少解决了正在进行的问题)。

这招对我很管用

使用 VisualStudio 的 安装

在选项卡“工作负载”检查 & quot; .Net Core 跨平台开发”,并点击“修改”

enter image description here

不要忘记检查左边菜单上的.NET Core 2.0开发工具”。

来源

注意

我安装 Asp Net Core 之前,但没有出现在我的 Visual Studio 上,只是在我安装使用 Visual Studio 的安装之后出现在我面前。

我刚刚经历了这个麻烦。在我的情况下,我有一个工作脚本

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

今天我开始得到这个精确的错误。但是现在我记得前一天安装了 VS2019。看来它改变了 VS2017的一些东西。我去 VS2017更新,安装最新的版本/更新,它修复它回来。

确保您下载了 x86SDK,而不是仅仅为 Visual Studio 下载 x64SDK。

我同时安装了 VisualStudio2019和2017。我试过安装。NET Core 2.X SDK for VS2017单独使用,但运气不佳。

问题是,我已经安装了.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\3.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

1)确保.NET 核心 SDK 安装在您的机器上。 下载.NET

2)设置 PATH 环境变量如下 路径

我在尝试在 TFS 中构建解决方案时遇到了这个问题。我们使用“点网络发布”任务。使用 MSbuild 为我们打破了僵局。

我遇到了同样的问题,我用这种方法解决了:

  1. 安装了.NET Core 2.2 SDK for Visual Studio 2017: Https://dotnet.microsoft.com/en-us/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral
  2. 转到项目-> 属性 > 目标框架

现在我的2.0缺失的目标框架是合格的,我选择了它,并解决了这个问题。