当前的.NET SDK不支持在Visual Studio 2017更新15.3安装中针对.NET Standard 2.0错误

问题描述 投票:93回答:10

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

我已将我的Visual Studio 2017更新为版本15.3,并且还在Visual Studio安装程序中手动检查了.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 Standard 2.0的.NET SDK版本。

visual-studio-2017 .net-standard-2.0
10个回答
126
投票

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

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

dotnet --info

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

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


0
投票

我有同样的问题,并拥有最新版本的Microsoft Visual Studio Community 2017版本15.7.3

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

信息:Microsoft Visual Studio社区2017版本15.7.3 VisualStudio.15.Release / 15.7.3 + 27703.2026 Microsoft .NET Framework版本4.7.03056

已安装版本:社区

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

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

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

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

ResourcePackage Extension 1.0 ResourcePackage Visual Studio扩展详细信息

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

Visual Studio代码调试适配器主机包1.0用于在Visual Studio中承载Visual Studio代码调试适配器的Interop层

用于Unity的Visual Studio工具3.7.0.1用于Unity的Visual Studio工具


13
投票

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


8
投票

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


7
投票

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

在项目的根源


5
投票

这对我有用

Use the installation of the Visual Studio

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

enter image description here

不要忘记在左侧菜单中选中“.NET Core 2.0开发工具”。

Source

Note

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


3
投票

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

enter image description here


2
投票

卸载一些.NET Core 1.x预览SDK后,我刚刚使用15.8.3,我的应用程序无法编译并显示错误。

它是通过安装最新的x86版本的SDK修复的,即使我在Windows 10 x64上。

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


2
投票

实际上,对我而言,它与另一个答案相反。

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

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


1
投票

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

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更新,安装了最新版本/更新并将其修复了。

© www.soinside.com 2019 - 2024. All rights reserved.