项目

升级基于 ABP 的解决方案

本文档解释了在发布新 ABP 版本时,如何升级您现有的解决方案。

ABP UPDATE 命令

ABP 平台由数百个 NuGet 和 NPM 包组成。手动更新所有这些包来升级您的应用程序会很繁琐。ABP CLI 提供了一个便捷的命令,可以一键更新解决方案中所有与 ABP 相关的 NuGet 和 NPM 包:

abp update

在终端中运行此命令,确保您位于解决方案的根文件夹中。

如果您的解决方案包含 Angular UI,可能在解决方案中有 aspnet-coreangular 文件夹。请在这两个文件夹的父文件夹中运行此命令。

数据库迁移

警告:如果正在进行数据库迁移,请务必小心,因为在某些情况下可能会导致数据丢失。在执行之前,请仔细检查生成的迁移代码。建议备份当前数据库。

当升级到新版本时,最好检查是否存在数据库架构更改,如果您的数据库提供程序是 Entity Framework Core,则升级数据库架构;

  • 在包管理器控制台 (PMC) 中使用 Add-Migration "Upgraded_To_Abp_8_3" 或类似的命令来创建新的迁移(在 Visual Studio 中,请在 PMC 中将 EntityFrameworkCore 设为默认项目,在解决方案资源管理器中将 .DbMigrator 设为启动项目)。
  • 将数据库迁移应用到您的数据库。如果可用,您可以运行 .DbMigrator 应用程序来升级数据库并填充初始数据。

如果 Add-Migration 生成了一个空的迁移(这意味着没有架构更改),您可以在执行 .DbMigrator 之前使用 Remove-Migration 删除它。

博客文章与指南

每当您升级解决方案时,强烈建议查看 ABP 博客 以了解新版本带来的新功能和变更。我们会定期发布文章来记录这类变更。

迁移指南

如果新版本对现有应用程序引入了破坏性更改,我们会准备迁移指南。请参阅 迁移指南 文档以查看所有指南。

升级启动模板

有时我们引入的新功能/更改需要修改启动模板。我们已经在新应用程序的启动模板中实现了这些更改。但是,在某些情况下,您需要在现有解决方案中手动进行一些细微的更改。

逐行记录必要的更改是不切实际的。在这种情况下,我们建议您创建一个示例解决方案,一个使用您现有的版本,另一个使用新版本,然后使用 diff 工具进行比较。您可以参阅此指南,了解如何使用 WinMerge 应用程序来完成此操作。

语义化版本控制与破坏性更改

我们努力遵循语义化版本控制规则,因此对于像 7.1、7.2、7.3... 这样的次要(功能)版本,您不会遇到破坏性更改。

但是,在某些情况下,我们也可能在功能版本中引入破坏性更改;

  • ABP 有许多集成包,有时集成的库/框架会发布主要版本并进行破坏性更改。在这种情况下,我们会仔细检查这些更改并决定是否升级集成包。如果更改的影响相对较小,我们会更新集成包并在发布博客文章中解释该更改。在这种情况下,如果您使用了这个集成包,您应该遵循博客文章中说明的指引。如果更改可能会破坏许多应用程序且不易修复,我们会决定将此次升级推迟到下一个主要的 ABP 版本。
  • 有时我们必须进行破坏性更改来修复重大错误或使用问题。在这种情况下,我们认为开发者已经无法正常使用该功能,因此用破坏性更改来修复它没有问题。在这种情况下,该功能通常是一个很少使用的功能。同样,我们会尽量将影响降到最低。

预览版本与夜间构建版本

预览版本和夜间构建版本可以帮助您在新稳定版本发布之前尝试新功能并提前适配您的解决方案。

  • 预览版本 通常在次要(功能)版本发布前约 4 周发布。次要(功能)版本的开发周期约为 12 周。
  • 夜间构建版本 每个工作日(周末除外)都会从开发分支发布。这意味着您可以尝试前一天的开发成果。

另请参阅

在本文档中