之前章节我们使用的abp版本是5.0.0-rc1,现在5.0.0正式版已经发布,下面我们看看如何把abp框架升级到最新版。
首先,更新Abp Cli工具到最新版
dotnet tool update -g Volo.Abp.Cli
接着使用上一章的源码作为示例,进入aspnet-core目录,即后端解决方案所在目录,执行升级命令:
abp update
使用vs2022打开aspnetcore后端解决方案,发现只有主模块中abp依赖包更新到了最新版,而模块中的abp依赖包依然是rc1版本,这时还需要手动更新依赖包
右键解决方案,选择管理解决方法的Nuget程序包,弹出的标签页中选择更新,输入Volo.Abp搜索,程序包源选择nuget.org,在结果中选择所有的包,点击更新
这样后端框架就已经更新完成了,继续更新angular前端版本
使用vscode打开filemanagement.angular目录,启用终端,输入升级命令:
abp update --npm
这样就算是升级完了,不要忘了查看发行日志,看看有没有中断性(即Break changes)的修改,如果有,则可能需要修改代码;另外如果新版本数据库有修改,那么还需要添加数据库迁移。
最后分别编译前端和后端代码,并启动服务,打开网站,验证功能是否正常,结果发现还真有问题,文件管理模块的页面显示不出来,按F12查看控制台日志,发现如下警告信息
DynamicLayoutComponent must be used only in AppComponent.
这个在升级之前是没问题的,那么肯定是更新出的问题,下载abp最新版的源码,查看DynamicLayoutComponent的代码,发现如下行:
问题就出现在这,那么abp内置的模块用户管理和角色管理怎么就正常呢,查看Identity模块源码,发现在Identity模块中组件路由配置有所不同(identity-routing.module.ts)
下面是我的项目的文件管理模块中组件路由配置
将文件管理模块中组件路由中DynamicLayoutComponent修改为RouterOutletComponent,然后执行命令yarn build:files编译文件模块 ,执行npm start 启动项目,发现一切正常了