首页 > 解决方案 > Visual Studio 2019 没有向我展示 .NET Standard 2.1 和 .NET Core 3.1 作为 Target Framework 的一部分。.NET Core 3.1 安装在我的系统上

问题描述

注意:我使用的是 VS 2019 专业版 16.0.2

问题: 我有一个在 VS 2017 中运行良好的源代码库。但是为了支持 .NET core 3.1,我决定将我的 VS 2017 升级到 VS 2019。当我在 VS 2019 中开源代码时。它没有显示 .NET标准 2.1 和 .NET Core 3.1 作为 Target Framework 的一部分。当我寻找项目属性时。

当我修改 .csproj 文件<TargetFramework>netcoreapp3.1</TargetFramework>然后构建时,我得到:

当前的 .NET SDK 不支持面向 .NET Core 3.1。以 .NET Core 2.1 或更低版本为目标,或者使用支持 .NET Core 3.1 的 .NET SDK 版本。

对于另一个项目,当我修改 .csproj 文件<TargetFramework>netstandard2.1</TargetFramework>然后构建时,我得到:

当前的 .NET SDK 不支持面向 .NET Standard 2.1。以 .NET Standard 2.0 或更低版本为目标,或者使用支持 .NET Standard 2.1 的 .NET SDK 版本。

我试过的:

  1. 现在我决定在 VS 2019 中创建一个全新的项目。然后令人惊讶的是它只是向我展示了它.NET Standard 2.1.NET Core 3.1作为 Target Framework 的一部分。
  2. 还要查看以前的 StackOverflow 答案。我在解决方案的顶部创建了 global.json 文件。global.json 看起来像

{“sdk”:{“版本”:“3.1.402”}}

但我作为我的解决方案的一部分。我有2个项目。第一个项目是netstandard,第二个项目是netcore【我的测试项目是netcore】。测试项目允许我从项目属性目标框架部分选择 3.1,但我的第一个项目无法将我显示netstandard2.1为项目属性目标框架的一部分。我的 global.json 错了吗?

期望: 我在 VS 2017 上完美构建的源代码应该在 VS 2019 上构建。

实际的

标签: visual-studio-2019.net-core-3.1.net-standard-2.1

解决方案


回答我的问题:

  1. 更新 VS 2019 - 我使用的是 VS 2019 16.0.2 专业版(默认情况下由 IT 触发)。为了解决我的问题,我需要将 VS 2019 更新到 16.4,因为它包含 .NET Core 3.1。
  2. 更新 .sln 文件:我需要这样做,因为我的源代码是使用 vs2017 开发的,这就是为什么我的 .sln 文件是根据 VS2017 开发的。VS 2019 将使用 MSBuild 16。确保 .sln 应该有一个 VisualStudioVersion = 16 的条目(要生成它,您可以使用 VS2019 创建一个虚拟项目应用程序,然后将您的项目 .sln 文件与生成的 VS2019 .sln 文件进行比较,您会看到不同之处)

注意:另外,请确保您使用的是 .NET Core 2.1 SDK,然后安装适用于 VS2019 的 v2.1.810。


推荐阅读