C# 当前的.NET SDK不支持以.NET Core 2.2为目标。(SDK 2.2.202)

C# 当前的.NET SDK不支持以.NET Core 2.2为目标。(SDK 2.2.202),c#,visual-studio,.net-core,.net-core-2.2,C#,Visual Studio,.net Core,.net Core 2.2,许多类似问题中的另一个问题,但所寻找的解决方案都没有起到帮助作用(请参见下面的哪个问题) 在撰写本文时,.NET Core v2.2已退出预览,最新版本为v2.2.202(发布日期:2019年4月2日) 我通过“安装其他框架”安装了该版本,我安装了x64版本,我之前安装的所有其他版本也都是该版本 安装后,当我创建新项目时,它会显示: 但当我打开属性时,它不会: dotnet--info在项目目录中,给出以下结果: .NET Core SDK (reflecting any global.j

许多类似问题中的另一个问题,但所寻找的解决方案都没有起到帮助作用(请参见下面的哪个问题)

在撰写本文时,.NET Core v2.2已退出预览,最新版本为v2.2.202(发布日期:2019年4月2日)

我通过“安装其他框架”安装了该版本,我安装了x64版本,我之前安装的所有其他版本也都是该版本

安装后,当我创建新项目时,它会显示:

但当我打开属性时,它不会:

dotnet--info
在项目目录中,给出以下结果:

.NET Core SDK (reflecting any global.json):
 Version:   2.2.202
 Commit:    8a7ff6789d

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

Host (useful for support):
  Version: 2.2.3
  Commit:  6b8ad509b6

.NET Core SDKs installed:
  2.1.2 [C:\Program Files\dotnet\sdk]
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.201 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.401 [C:\Program Files\dotnet\sdk]
  2.1.505 [C:\Program Files\dotnet\sdk]
  2.2.202 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.3-servicing-26724-03 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
我试过:

  • 创建global.json(),这只会产生更多错误,因为它无法加载目标为v2.2的项目
  • 在设置()中启用预览SDK
  • 我曾尝试安装x86版本,但也出现了更多错误,因为它不知道现在应该使用哪一个版本。所以他们开始抱怨没有安装.NET标准
  • 我已将Visual Studio和Visual Studio构建工具更新至最新版本,即15.9.11(发布日期:2019年4月2日)
  • 当我通过解决方案目录中的命令行
    dotnet build
    进行构建时,它会成功构建,因此它一定是visual studio的东西
  • 已验证环境变量中只有
    C:\Program Files\dotnet\
    ,因此
    C:\Program Files(x86)\dotnet\
    不存在
  • 查看了所有项目,但我没有设置
    MSBuildSDKsPath
    环境变量,因为我还有其他项目需要使用2.1。我检查了当前没有
    MSBuildSDKsPath
    集,因此不应强制将其设置为该版本


上述所有尝试当然都涉及重新启动计算机或重新启动VS。

这很可能看起来像是针对VS的安装程序优化,删除了过于贪婪的旧SDK,并删除了旧VS版本依赖的版本,但在MS团队正在调查时,这更多的是一种假设。有关更多类似报告,请参阅

2.2.1x SDK(!)版本使用MSBuild 15,2.2.2xx版本使用MSBuild 16

VS 2017需要解析与MSBuild 15兼容的本地版本,因此如果在升级过程中删除了2.2.1xx,则此操作可能会失败

您可以通过从重新安装兼容版本(例如2.2.105)来解决此问题

为了找出哪个SDK使用了哪些组件,您可以检查=3.0(预览)源代码中的文件-通过MicrosoftBuildPackageVersion属性设置了MSBuild版本。

添加@martin ullrich的答案,因为这对我更有意义。(可能是因为今天是星期五,我只需要:“到这里来做这个。”)

去 下载2.2.105版本的安装程序。任何东西>=2.2.200 在VS 2017中不起作用。2.2.105和2.2.202均包含最新版本 和最伟大的.NET Core 2.2版本,但在 这些工具包括并基于-1xx系列是MSBuild 15,NuGet 4。2xx列车为MSBuild 16,NuGet 5。等等,VisualStudio只寻找与兼容的最新版本 其版本的MSBuild-对于VS 2017,这是2.1.502版本 无法以.NET Core 2.2为目标。(更令人困惑的是,现在有 2.1.6xx版本与VS 2019工具版本以及.NET Core 2.1运行时)

[@]leecow和[@]rowanmiller正在更新该页面 关于VS,另请参见dotnet/core#2542和dotnet/sdk#3076,它们是 关于同样的问题


我的贡献:安装2.2.105后,我删除了目录
C:\Program Files(x86)\dotnet\sdk
和/或
C:\Program Files\dotnet\sdk
中标题为“2.2.202”的文件夹,因此
dotnet--info
现在阅读以下内容:


安装dotnet-sdk-2.2.103-win-x64修复了该问题

如果您希望使用asp.net核心版本超过v2.2.100,请使用Visual Studio 2019而不是2017

如果您使用的是Visual Studio 2017(v15.9),则需要安装.NET Core SDK版本2.2.108,因为只有Visual Studio 2019才支持更高版本

请参阅下表以选择正确的下载


还要检查发布信息和下载链接,这很有意义,但是我如何才能知道MSBuild版本VS使用了什么,新发布的SDK需要什么MSBuild版本,以及如何升级它呢?这是一件棘手的事情:如果不知道,你真的无法说出。。SDK以矩阵形式(包括运行时、工具等)发布,这是一个非常困难的问题。。您是如何发现2,2,2xx使用MSBuild 16的?消息来源?我认为这应该包括在一个公认的答案中。是的,我了解了SDK是如何随着时间的推移而构建的,并跟踪它的开发,在开发过程中做出了一些贡献。。我将添加一个指向最终依赖项的链接。还添加了一个指向其他用户报告类似问题的GH问题的链接。您能否详细说明从何处获取该安装文件?从微软网站?从GitHub?我也遇到了同样的问题,在我安装x86 SDK后注意到“dotnet--info”没有列出2.2.106之后,我通过安装x86和x64版本的2.2.106解决了这个问题。