《Blog.Core》开源项目已经3年,期间收获了很多很多,同时也收到了很多小伙伴的支持和鼓励,才使得我有足够的心力从2.0到2.1、2.2、3.0、3.1和稳定了一年的5.0主版本。当然不会停止脚步的,在7月14号微软官方发布第六个6.0版本之际,老张决定是时候升级一波了,目前已经升级完成,并单独建立分支,主版本还是5.0,等官方正式发布后,我再合并到主分支。
本文发布文章,只是证明,从5.0到6.0还是那么简单。其实官网永远是最好的老师,你可以直接看官网:
https://docs.microsoft.com/zh-cn/aspnet/core/migration/50-to-60?view=aspnetcore-5.0&tabs=visual-studio
PS:文章还是直接用的VS2019,如果要用VS2022,可以自行搜索资料吧。
升级VS,安装SDK
首先最重要的就是升级VS2019,直接点击更新即可,大约1.7个G,保持一个好的网络吧,其他的不说了:
安装完成,可以查看自己的版本:
现在可以用VS2019创建一个项目,发现样式已经变化了:
好啦,VS已经更新完成,现在下载SDK,这个比较简单,想必已经轻车熟路了,直接上链接:
https://dotnet.microsoft.com/download/dotnet/6.0
安装过程很简单,一路Next即可:
安装完成!习惯性的CMD命令窗口测试一波:
看一下VS2019属性,列表中已经有了,如果没有就重启下:
万事俱备,接下来,就开始动手升级项目吧!
升级项目到.NET 6.0
如果依赖于文件 global.js 特定 .NET SDK 版本,将 属性更新为 version 已安装的 .NET 6.0 SDK 版本。例如:
代码语言:javascript复制{
"sdk": {
- "version": "5.0.100"
"version": "6.0.100-preview.2.21155.3"
}
}
当然,我们直接更新.csproj文件即可,一共13个子项目,Blog.Core也是一个比较齐全的项目,功能涵盖很多,所以很有实践生产意义,最后升级完成是这样的:
只需要把5.0改成6.0即可:
代码语言:javascript复制<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
</Project>
然后也顺带着把所有的nuget都升级下,记得勾选预览哟:
启动项目,预览效果
升级是很简单的,可能启动会报错,如果你用了IPLimit限流,可能会遇到这个问题:
从错误上可以看到,是缺少依赖注入,不要慌张,把错误搜索一下,就可以看到官方GitHub已经说到了,有两种情况,可以注入缺少的接口,也可以直接用官方封装好的扩展方法:
代码语言:javascript复制 services.AddSingleton<IProcessingStrategy, AsyncKeyLockProcessingStrategy>();
// 也可以直接,添加内存模式下的限流全部相关依赖
// https://github.com/stefanprodan/AspNetCoreRateLimit/releases/tag/4.0.0
//services.AddInMemoryRateLimiting();
咱继续往下走,可能会遇到其他小错误,比如获取根路径问题,不要怕,改一下即可:
代码语言:javascript复制- var basePath = Microsoft.DotNet.PlatformAbstractions.ApplicationEnvironment.ApplicationBasePath;
var basePath = AppContext.BaseDirectory;
继续运行,出现了熟悉的画面,成了!
整个过程很简单很丝滑,就算是有,也都是小问题,启动好后,内存也很正常
打完收工!