visual-studio-2019 - 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 版本。
我试过的:
- 现在我决定在 VS 2019 中创建一个全新的项目。然后令人惊讶的是它只是向我展示了它
.NET Standard 2.1
并.NET Core 3.1
作为 Target Framework 的一部分。 - 还要查看以前的 StackOverflow 答案。我在解决方案的顶部创建了 global.json 文件。global.json 看起来像
{“sdk”:{“版本”:“3.1.402”}}
但我作为我的解决方案的一部分。我有2个项目。第一个项目是netstandard
,第二个项目是netcore
【我的测试项目是netcore】。测试项目允许我从项目属性目标框架部分选择 3.1,但我的第一个项目无法将我显示netstandard2.1
为项目属性目标框架的一部分。我的 global.json 错了吗?
期望: 我在 VS 2017 上完美构建的源代码应该在 VS 2019 上构建。
解决方案
回答我的问题:
- 更新 VS 2019 - 我使用的是 VS 2019 16.0.2 专业版(默认情况下由 IT 触发)。为了解决我的问题,我需要将 VS 2019 更新到 16.4,因为它包含 .NET Core 3.1。
- 更新 .sln 文件:我需要这样做,因为我的源代码是使用 vs2017 开发的,这就是为什么我的 .sln 文件是根据 VS2017 开发的。VS 2019 将使用 MSBuild 16。确保 .sln 应该有一个 VisualStudioVersion = 16 的条目。(要生成它,您可以使用 VS2019 创建一个虚拟项目应用程序,然后将您的项目 .sln 文件与生成的 VS2019 .sln 文件进行比较,您会看到不同之处)
注意:另外,请确保您使用的是 .NET Core 2.1 SDK,然后安装适用于 VS2019 的 v2.1.810。
推荐阅读
- python-3.x - 我应该如何从 data-* 属性中抓取数据?
- java - 如何在java中调整二维数组的大小
- linkedin - LinkedIn 访问令牌 API 在 C# 中返回空值
- ruby-on-rails - Rails 出租电商平台
- google-analytics - 本地主机(127.0.0.1)应用程序上的 GTM Google 分析未被跟踪
- python - 'tuple' 对象不能解释为整数:两种代码解释有什么区别
- python - 这是一个类变量吗?
- flutter - 如何只调用此 Map Double Double 中的第二个字符串?
- javascript - 如何有效地列出超矩形边缘?
- javascript - Nuxt SSR Firebase -> 权限被拒绝