前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ken的杂谈从ASP.NET Core 3.1迁移到5.0

Ken的杂谈从ASP.NET Core 3.1迁移到5.0

作者头像
KenTalk
发布2020-11-26 11:49:37
8300
发布2020-11-26 11:49:37
举报
文章被收录于专栏:Ken的杂谈Ken的杂谈

一、前言

2016年,微软发布了 .NET Core 1.0,作为 .NET Framework的跨平台版本,并抽象除了 .NET Standard 作为公共的类库,自此之后, .NET Core、.NET Framework、XAMARIN成了三兄弟,分别为不同的平台服务

2020年,微软发布了大一统的.NET 5,支持桌面、Web、移动端、IoT等等应用的开发,也有了VS For Mac和VS Code 这样比较完善的在非Windows平台开发的工具

作为用 ASP.NET Core开发的网站,必须升级这重要的版本

二、升级过程

1、修改Project目标框架

修改 .csproj文件,把目标框架从netcoreapp3.1修改为netcoreapp5.0

  • 通用类库
代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <!--<TargetFramework>netcoreapp3.1</TargetFramework>-->
        <TargetFramework>net5.0</TargetFramework>
    </PropertyGroup>

</Project>
  • Web项目
代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk.Web">

    <PropertyGroup>
        <!--<TargetFramework>netcoreapp3.1</TargetFramework>-->
        <TargetFramework>net5.0</TargetFramework>
    </PropertyGroup>

</Project>

2、升级依赖的NuGet包

将项目依赖的所有NuGet包更新至最新版本

代码语言:javascript
复制
update-package <package_name>

当然,你可以用IDE提供的界面进行操作,更加便捷

3、MySQL Provider

如果项目配套使用的是MySQL数据库,而且使用的EF Core连接 MySQL Provider是Pomelo.EntityFrameworkCore.MySql,那么需要将版本升级到 5.0.0-alpha.2及以上,不然会因为缺少必要的依赖而发生异常

升级完成后需要在OptionsBuilder时指定MySQL版本

代码语言:javascript
复制
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseMySql(Configuration.GetConnectionString("db"), 
    MySqlServerVersion.LatestSupportedServerVersion);
}

因为我MySQL使用的是8.x版本,因此我就偷懒使用了LatestSupportedServerVersion,保险起见可以指定具体的MySQL版本号(指定版本号的前两位即可)

代码语言:javascript
复制
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    //指定版本号的前两位即可
    optionsBuilder.UseMySql(Configuration.GetConnectionString("blog"), 
    MySqlServerVersion.FromString("8.0"));
}

官方截止2020/11/22支持的版本号如下:

数据库

版本

MySQL

5.7-8.0

MariaDB

10.3-10.5

三、备注

1、升级感受

整体升级还是非常平滑的,比着从 .NET Core 2.0升级到 .NET Core 3.1 还是少踩了不少坑,这也说明 .NET Core也就是现在的 .NET 5的迭代已经非常平稳了,基本上不会在出现大的改动了

小的项目,推荐升级,大一点的项目,评估好依赖组件的支持情况,以及新版本的稳定度,再进行升级

2、附录

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、升级过程
    • 1、修改Project目标框架
      • 2、升级依赖的NuGet包
        • 3、MySQL Provider
        • 三、备注
          • 1、升级感受
            • 2、附录
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档