【问题标题】:The current .NET SDK does not support targeting .NET Core 2.2. (SDK 2.2.202)当前的 .NET SDK 不支持面向 .NET Core 2.2。 (SDK 2.2.202)
【发布时间】:2019-04-04 10:11:40
【问题描述】:

许多类似问题中的另一个,但搜索到的解决方案都没有帮助(请参阅下面查看的解决方案)。

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

我是通过“安装其他框架”安装的,我安装的是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 (SO answer),这只会产生更多错误,因为它无法加载针对 v2.2 的项目
  • 在设置中启用预览 SDK (SO answer)
  • 我已尝试安装 x86 版本,但也出现了更多错误,因为它对现在使用哪个版本感到困惑。于是开始抱怨没有安装 .NET Standard。
  • 我已将 Visual Studio 和 Visual Studio 构建工具更新到最新版本,即 15.9.11(发布日期,02-04-2019)
  • 我在解决方案目录下通过命令行dotnet build构建时,构建成功,所以肯定是visual studio的东西。
  • 已验证环境变量中只有 C:\Program Files\dotnet\,因此C:\Program Files (x86)\dotnet\存在。
  • 看了these options,都做了,但我没有设置MSBuildSDKsPath环境变量,因为我还有其他项目也需要2.1。我检查了当前没有设置MSBuildSDKsPath,因此不应强制使用该版本。

上述所有尝试当然都涉及重启电脑或重启VS。

【问题讨论】:

  • 我遇到了同样的问题并通过安装 x86 和 x64 版本的 2.2.106 解决了这个问题,因为我注意到在我安装 x86 SDK 后“dotnet --info”没有列出 2.2.106 .

标签: c# visual-studio .net-core .net-core-2.2


【解决方案1】:

这很可能看起来像是 VS 的安装程序优化,它消除了过于贪婪的旧 SDK 并删除了旧 VS 版本所依赖的版本,但目前这更像是一个假设,而 MS 团队正在调查。有关更多类似报告,请参阅this GitHub issue

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

VS 2017 需要解析与 MSBuild 15 兼容的本地版本,因此如果在升级期间删除了 2.2.1xx,这可能会失败。

您可以通过重新安装兼容版本来解决此问题 - 例如2.2.105 - 来自https://dotnet.microsoft.com/download/dotnet-core/2.2

为了找出哪个 SDK 使用了哪些组件,您可以检查 DependencyVersions.props 文件和 >= 3.0(预览版)源中的 Versions.props 文件 - MSBuild 版本通过 @ 设置987654327@财产。

【讨论】:

  • 这很有道理,但是我怎么知道VS使用什么MSBuild版本,新发布的SDK需要什么MSBuild版本,以及如何升级呢?
  • 这是一个棘手的问题:你不能在不知道的情况下真正分辨出来。SDK 以矩阵的形式提供(包括运行时、工具)是一个超级难题。
  • 那么.. 你是怎么发现 2,2,2xx 使用 MSBuild 16 的?来源?我认为这应该包含在可接受的答案中
  • 是的,随着时间的推移,我了解了 SDK 的构建方式并跟踪其开发,并在此过程中做出了一些贡献。我将添加指向最终依赖项的链接。
  • 还添加了指向其他用户报告类似问题的 GH 问题的链接
【解决方案2】:

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

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

查看发布信息和下载链接here

【讨论】:

    【解决方案3】:

    添加来自https://github.com/aspnet/AspNetCore.Docs/issues/11844 的@martin-ullrich 的回答,因为这对我来说更有意义。 (也许因为是星期五,我只需要:“去这里做这个。”)

    转到https://dotnet.microsoft.com/download/dotnet-core/2.2 和 下载 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. 等等,Visual Studio 只寻找兼容的最新版本 它的 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 现在读取以下:

    【讨论】:

      【解决方案4】:

      安装 dotnet-sdk-2.2.103-win-x64 解决了这个问题

      【讨论】:

      • 您能否详细说明从何处获取该安装文件?来自微软网站?来自 GitHub?
      【解决方案5】:

      如果您想使用高于 v2.2.100 的 asp.net 核心版本,请使用 Visual Studio 2019 而不是 2017 https://github.com/aspnet/AspNetCore.Docs/issues/11844

      【讨论】:

        猜你喜欢
        • 2019-08-31
        • 2019-08-25
        • 1970-01-01
        • 2019-02-10
        • 1970-01-01
        • 1970-01-01
        • 2020-01-24
        • 2018-06-09
        • 2018-11-20
        相关资源
        最近更新 更多