一篇文章搞懂.netcore2.2升级到3.1

前言

近日,公司要求将项目从.net core 2.2升级到3.1 ,记录一下升级的过程,希望能对有此升级要求的人有所帮助

.net core 3.1升级过程

1. 右击程序集,选择edit project file,将TargetFramework 改为netcore 3.1
一篇文章搞懂.netcore2.2升级到3.1_第1张图片
修改前:

在这里插入图片描述
修改后 :

在这里插入图片描述
2. 去除packagereference 的Microsoft.AspNetCore.App 包和Microsoft.AspNetCore.Razor.Design.
修改前:
一篇文章搞懂.netcore2.2升级到3.1_第2张图片

3.修改 webapi的program文件,实际上.net core 3.1对host进行更高一级的抽象,由webhost 抽象为Host,可以做更多的事情.
修改前:
一篇文章搞懂.netcore2.2升级到3.1_第3张图片
修改后 : 一篇文章搞懂.netcore2.2升级到3.1_第4张图片
4.ConfigureServices方法修改
mvc 将 service.addMvc() 修改为services.AddControllersWithViews()
webapi 将 service.addMvc() 修改为services.AddControllers()

修改前:
在这里插入图片描述
一篇文章搞懂.netcore2.2升级到3.1_第5张图片

修改后 :
在这里插入图片描述
一篇文章搞懂.netcore2.2升级到3.1_第6张图片
5.swagger升级修改
修改前:
一篇文章搞懂.netcore2.2升级到3.1_第7张图片
修改后 :
一篇文章搞懂.netcore2.2升级到3.1_第8张图片
6. confiure 方法修改 ,
mvc

app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });`
            

webapi

     app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });         

修改前:
一篇文章搞懂.netcore2.2升级到3.1_第9张图片
修改后 :
一篇文章搞懂.netcore2.2升级到3.1_第10张图片

7. .netstandard2.0 升级.net standard2.1, 同样将tatgetframework升级

修改前:

在这里插入图片描述修改后 :

在这里插入图片描述

中间遇到的一些问题

startup 构造函数无法注入Ilogger,需要到configure方法注入,具体原因在这
一篇文章搞懂.netcore2.2升级到3.1_第11张图片
一篇文章搞懂.netcore2.2升级到3.1_第12张图片

总结

虽然升级过程有点坑,但是完成之后还是挺爽的,技术永远不会停滞不前,我们只能跟上!

参考

从 ASP.NET Core 2.2 迁移到3.0

你可能感兴趣的:(.netcore,c#)