项目

ABP 版本 8.3 迁移指南

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

开源 (框架)

IIdentityDataSeeder.SeedAsync 方法添加了 AdminUserName 参数

在此版本之前,IIdentityDataSeeder.SeedAsync 用于使用用户名 admin 来初始化用户数据,以便能够轻松测试所有具有全部权限的应用程序。

从本版本开始,我们允许您设置默认的 adminUserName。因此,您可以将默认用户名设置为任何您想要的名称,或者保持原样,让用户名像以前一样为 admin

例如,在 MyProjectNameDbMigrationService.SeedDataAsync 方法中(位于领域项目的 Data 文件夹下),您可以按如下方式传递用户名:

    private async Task SeedDataAsync(Tenant? tenant = null)
    {
        Logger.LogInformation($"执行 {(tenant == null ? "host" : tenant.Name + " tenant")} 数据库种子数据...");

        await _dataSeeder.SeedAsync(new DataSeedContext(tenant?.Id)
            .WithProperty(IdentityDataSeedContributor.AdminEmailPropertyName, IdentityDataSeedContributor.AdminEmailDefaultValue)
            .WithProperty(IdentityDataSeedContributor.AdminPasswordPropertyName, IdentityDataSeedContributor.AdminPasswordDefaultValue)
+           .WithProperty(IdentityDataSeedContributor.AdminUserNamePropertyName, "your-admin-user-name")
        );
    }

通常,您无需对此更改进行任何代码修改。但是,如果您在应用程序中使用了 IIdentityDataSeeder.SeedAsync 方法,现在它还会接收一个额外的(可选的)adminUserName 参数,您可以传递其值。

更多信息请参见 PR:https://github.com/abpframework/abp/pull/20131/

文档模块:改进与单项目模式支持

在此版本中,我们对文档模块进行了一些改进,并引入了单项目模式,该模式允许您对所有文档使用单一项目名称。

在实现此新功能时,我们对现有类进行了一些小的更改。例如,以下类的构造函数方法已更改,如果您使用了它们,则需要在代码中进行更新:

更多信息请参见 PR:https://github.com/abpframework/abp/pull/19419

datatables.net 更新至 2.0.2

在此版本中,datatables.net 库版本已从 v1.11.4 更新至 v2.0.2。我们在框架层面完成了所有相关更改,并更新了依赖项及其资源映射配置。此外,我们使其保持向后兼容,因此不应直接影响您的应用程序。

但是请注意,此包由 @abp/aspnetcore.mvc.ui.theme.shared 包使用,而该包被官方主题使用。因此,如果您使用了 datatables.net 库中的任何方法,这些方法可能已被弃用或移除。

更多信息请参见 PR:https://github.com/abpframework/abp/pull/19340

对导航属性发生变化的实体应用 ApplyAbpConcepts

在此版本中,我们开始在任何实体的导航属性发生变化时,更新实体的 EntityVersionModificationAuditPropertiesConcurrencyStamp 属性。通常,这不应影响您的代码,但您可能需要为此更改修复您的测试或代码库。更多信息请参见 #20012

Angular UI

我们正式通知您,ABP 版本 8.3 已升级以包含 Angular 版本 18。因此,我们建议将您的应用程序迁移到 Angular v18 以确保兼容性。

租户模拟 & 用户模拟

如果环境配置中不存在,请将 impersonation: { userImpersonation: true, tenantImpersonation: true} 对象添加到 oAuthConfig 中。

export const environment = {
  //其他属性..
  oAuthConfig: {
    //其他属性..
    impersonation: {
      userImpersonation: true,
      tenantImpersonation: true,
    },
  },

参见 https://abp.io/docs/latest/modules/account/impersonation#angular

PRO 版本

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

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

向 CMS Kit (PRO) 的 URL 转发系统添加了正则表达式支持

ABP 提供了一个URL 转发系统,允许您创建重定向到其他页面或外部网站的 URL。在此版本之前,URL 转发系统仅适用于静态 URL,不支持正则表达式。在此版本中,我们为 URL 转发系统引入了正则表达式支持,现在您可以为非静态 URL 传递正则表达式。

由于已向 CmsShortenedUrl 实体添加了新属性,您应创建新的数据库迁移并将其应用到您的数据库。

创建新迁移并将其应用到数据库后,通常您无需进行任何更改,但是,如果您重写了与 URL 转发系统相关的页面/方法或类,则可能需要相应地进行更新。为此,您可以获取CMS Kit 模块的源代码,并在您的应用程序中更新相关部分。

在本文档中