[转帖].NET Core 项目指定SDK版本

Posted jinanxiaolaohu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转帖].NET Core 项目指定SDK版本相关的知识,希望对你有一定的参考价值。

 
https://www.cnblogs.com/stulzq/p/9503121.html

 

一. 版本里的坑

自从 .NET Core 2.1.0版本发布以后,近几个月微软又进行了几次小版本的发布,可见 .NET Core 是一门生命力非常活跃的技术。经过一段时间的实践,目前做 ASP.NET Core 开发时,使用的 Nuget 包,比如 Microsoft.AspNetCore.App等的版本号要与 .NET Core 版本号(不是SDK版本号,后续说明)保持一致,否则编译或者运行的时候可能会出现一些稀奇古怪的错误,比如 Microsoft.AspNetCore.App 2.1.0版本对应 .NET Core 2.1.0版本,这可谓是一个坑。

二. 版本对照

.NET Core 版本SDK 版本Runtime 版本
2.1.2 2.1.400 2.1.2
2.1.2 2.1.302 2.1.2
2.1.1 2.1.301 2.1.1
2.1.0 2.1.300 2.1.0

以上数据来自官方:https://www.microsoft.com/net/download/dotnet-core/2.1

三. 指定项目使用的 SDK 版本

前几天 Visual Studio 2017 推送了 15.8 版本,此版本自带了 .NET Core 2.1.2 (SDK版本 2.1.400),由于公司的项目使用的 .NET Core 2.1.0 版本(SDK版本 2.1.300),在编译的时候直接报错了。这是因为 .NET Core 项目默认使用最新版本的 .NET Core,我们的Nuget包没有进行升级,所以报错了。最终我们采用了指定项目SDK版本来解决了。操作如下:

项目的根目录打开cmd,执行命令即可:

dotnet new global.json --sdk-version <SDK版本号>

要注意的是最后的参数是SDK版本,不是.NET Core 版本,可参照上表。

可在项目根目录执行命令来检查,看看是否与设置的SDK版本号一致:

dotnet --version

操作演示:

技术图片

global.json 文件内容:


  "sdk": 
    "version": "2.1.300"
  

以上是关于[转帖].NET Core 项目指定SDK版本的主要内容,如果未能解决你的问题,请参考以下文章

当前的 .Net SDK 不支持针对 .Net Core 2.2 目标 .Net Core 2.1 或更低版本 [重复]

VS2019打开项目加载失败:无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。

VS2019打开项目加载失败:无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配

我电脑安装vs2010,刚安装了.net-sdk-3.1为啥新建项目web下没有.net core啊?

.net core 2.2.0 vs 2.2.7 无法合并,因为版本被项目锁定

CentOS7部署.net core项目