项目

ABP 版本 9.2 迁移指南

本文档是将 ABP v9.x 解决方案升级到 ABP v9.2 的指南。此版本中有一些可能影响您的应用程序的更改,请仔细阅读并应用到您的应用程序中。

开源版(框架)

添加 ApplicationName 属性以隔离后台作业与后台工作者

当多个应用程序共享同一存储用于 ABP 的后台作业模块 时,一个应用程序的作业可能会对另一个应用程序可见。这可能导致以下问题:

  1. 应用程序可能尝试处理不属于它们的作业
  2. 这些尝试会因"未定义该作业名称的后台作业"错误而失败
  3. 失败的作业被标记为 IsAbandoned = true
  4. 原始应用程序无法再处理这些已放弃的作业

为了解决此问题,我们向 AbpBackgroundJobWorkerOptions 类添加了 ApplicationName 属性。此属性允许您指定应用程序名称,有助于在不同应用程序之间隔离作业。(有关更多详细信息,请参见 PR。)

默认情况下没有破坏性更改。但是,您需要为数据库创建一个迁移,以向相关表添加 ApplicationName 列,并将其应用到您的数据库。

MongoDB.Driver 升级到 3.1.0

在此版本中,我们将 MongoDB.Driver 升级到了 3.1.0。要迁移您的应用程序,请参考我们的 MongoDB Driver 2 到 3 迁移指南 文档。

用自定义实现替换 Toastr(不依赖任何第三方库)

在此版本中,我们用不依赖任何第三方库的自定义实现替换了 Toastr。如果您正在使用 Toastr 库,这是一个破坏性更改。

以下是迁移步骤:

  1. 从您的应用程序中移除任何直接的 Toastr 依赖项
  2. 更新您的通知调用以使用新的 API
  3. 迁移任何自定义样式或配置

有关详细的实现指南和 API 文档,请参阅:

专业版(PRO)

在阅读本节之前,请检查**开源版(框架)**部分。列出的主题可能会影响您的应用程序,您可能需要处理它们。

如果您是付费许可证所有者并且正在使用 ABP 的付费版本,请遵循以下部分以了解破坏性更改并应用必要的更改:

Identity Pro 模块:注册时需要电子邮件验证

在此版本中,我们向 Identity Pro 模块添加了一项新设置,要求注册时进行电子邮件验证。这是一项防止垃圾注册的安全措施:

通常,无需进行任何更改。但是,如果您继承了 AccountAppService 类并实现了自己的逻辑,则需要更新您的构造函数以匹配新的签名,因为现在注入了两个新服务:

//为简洁起见,省略部分代码...

+ protected IDistributedCache<EmailConfirmationCodeCacheItem> EmailConfirmationCodeCache { get; }
+ protected IdentityErrorDescriber IdentityErrorDescriber { get; }

  public AccountAppService(
-           IdentityUserTwoFactorChecker identityUserTwoFactorChecker)
+        IdentityUserTwoFactorChecker identityUserTwoFactorChecker,
+        IdentityErrorDescriber identityErrorDescriber)
在本文档中