[日常填坑系列]CAP食用指南-版本引用问题

一、前言

最近,由于好久没升级底层框架,一直用着 netcore2.2 版本,导致有些包没能更新到最新的版本,例如: CAP

然而,在最近升级到 CAP:3.1.2 版本的时候,发现有点小坑,只能退回到 CAP:3.1.1 版本了。

二、原因

为啥要将 CAP 版本从 3.1.2 退回到 3.1.1 呢?

根本原因: CAP:3.1.2 移除了 DotNetCore.CAP.Serialization.StringSerializer 序列化类。这将导致 DotNetCore.CAP.MySql:3.0.4 的引用异常问题。 https://github.com/dotnetcore/CAP/issues/764

在这里,可能会有人问,为什么不将 DotNetCore.CAP.MySql 升级为 3.1.2 版本呢?

由于本人使用 MySQL 数据库,因此,使用的是 Pomelo.EntityFrameworkCore.MySql:3.2.4 版本的ORM。

然而,该类库约束了 MySqlConnector 的最高版本与最低版本,又由于本人暂时还不想用 net5 的情况下。因此,只能使用 DotNetCore.CAP.MySql:3.0.4 版本。 https://github.com/dotnetcore/CAP/issues/690

  • CAP引用
  • EFCore引用

三、解决方案

既然问题都找到了,那么现在就是解决问题的时候了。

该方案仅限于 netcore3.1 ,其它版本不负责呀。

相关版本如下:

  • DotNetCore.CAP : 3.1.1
  • DotNetCore.CAP.Dashboard : 3.1.1 。仪表盘这个也要引用 StringSerializer 这个类,所以还是跟主版本一致吧。
  • DotNetCore.CAP.RabbitMQ : 3.1.1 。个人使用版本,不解释。
  • DotNetCore.CAP.MySql : 3.0.4 。目前来说,这个版本能在 netcore3.1 中最后的版本了,其它更高的版本目测都得升级 net5
  • Pomelo.EntityFrameworkCore.MySql : 3.2.4 。目前来说,这个版本是 netcore3.1 中最后的版本了。

还有一个终极方案,那就是直接拉代码下来,自己发包解决,嘿嘿嘿。

四、参考文献

CAP 3.1 版本发布通告

五、后话

可能这是我个人试水出的问题,如果有更好的解决方式可以说一下。

不过这感觉会被拍死的节奏。

另外,如果想去试试掉坑的话,可以看看我的例子。

Bing.NetCore

#感谢您访问本站#
#本文转载自互联网,若侵权,请联系删除,谢谢!657271#qq.com#
大前端
我还没有学会写个人说明!
上一篇

8核心首秀:Intel 11代酷睿游戏本还有满血版

你也可能喜欢

评论已经被关闭。

插入图片