项目

ABP 版本 9.3 迁移指南

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

切换为使用 MySql.EntityFrameworkCore 作为 EF Core MySQL 提供程序

在此版本中,我们将 EF Core MySQL 提供程序从 Pomelo.EntityFrameworkCore.MySql 切换为 MySql.EntityFrameworkCore

如果您希望继续使用 Pomelo.EntityFrameworkCore.MySql 提供程序,则可以按照使用 Pomelo 提供程序文档来迁移您的应用程序。

有关实现细节,请参阅我们在 #23392 中进行的内部更改。

RabbitMQ.Client 更新至 7.x

在此版本中,我们将 RabbitMQ.Client 更新至 7.1.2这是一个主要版本更新,为该库带来了显著改进:

  1. 在整个公共 API 和内部代码中提供完整的 async/await 支持
  2. 改进了性能和资源利用率
  3. 更好的错误处理和连接管理

通过此次更新,您应更新您的方法调用以使用新的 async/await 支持(在 RabbitMQ 相关的提供程序包中)。有一些方法签名变更和新的 API 调用,与新的 API 保持一致。您可以查看我们在 #22510 中进行的内部更改,并在您的代码中进行相关修改。

文档模块:导出为 PDF

在此版本中,我们为文档模块引入了一项新功能,允许您将文档导出为 PDF 文件。(管理员从后台侧生成 PDF 文件,然后“下载 PDF”按钮会出现在文档系统中,允许用户将编译好的文档作为 PDF 文件下载。)

在实现此功能时,我们对文档模块的一些服务进行了更改。通常,除非您重写或使用了文档模块的内部服务,否则无需在代码中进行任何更改。

例如,ProjectAdminAppService 的构造函数已更改为接受一个新参数:

public class ProjectAdminAppService : ApplicationService, IProjectAdminAppService
{
    public ProjectAdminAppService(
        IProjectRepository projectRepository,
        IDocumentRepository documentRepository,
        IDocumentFullSearch elasticSearchService,
        IGuidGenerator guidGenerator,
+       IProjectPdfFileStore projectPdfFileStore)
}

您可以查看我们在 #22430#22922 中做的所有内部更改,并根据需要在您的代码中进行相关修改。

Angular UI:将 NPM 包迁移至独立组件结构

在此版本中,我们更新了 Angular 包以支持新的独立组件架构。这是一个非破坏性更改——您现有的基于模块的应用程序将继续工作,无需任何修改。但是,如果您希望迁移到独立组件方法,我们已在包中提供了必要的更新

主要变更包括:

  • 更新了路由配置以同时支持基于模块和独立组件的方法
  • 在 ABP Suite 代码生成中添加了对独立组件的支持
  • 更新了原理图以支持基于模块和独立组件的模板

有关详细的迁移步骤和最佳实践,请参阅我们即将发布的文档和/或博客文章。迁移是可选的,如果您愿意,可以继续使用基于模块的方法。

Angular UI:迁移版本至 v20

在此版本中,我们将 Angular 版本更新至 v20。此更新使我们的 Angular 用户界面达到最新且功能最强大的版本。

关键更新:

  • 将 Angular 包(core, common, forms, router 等)更新至 ~20.0.0
  • 将 @angular/cli 和 @angular-devkit/* 更新至 ~20.0.0
  • 将 Typescript 更新至 ~5.8.0
  • 将 RxJS 更新至 ~7.8.0
  • 将第三方库更新至与 Angular v20 兼容的最新版本

破坏性变更:

  • 最低要求的 Node.js 版本现在是 v20.19.0
  • @angular/platform-browser 不再全局包含已弃用的 API,如 DOCUMENT token;请确保从 @angular/common 导入
在本文档中