ABP Framework 模塊管理
概述
該頁面詳細介紹了在 ABP Framework 解決方案中使用 ABP CLI 及相關工具添加、更新和管理模塊的方法。模塊管理是 ABP 模塊化架構的核心,支持可重用業務和基礎設施功能的集成。模塊通常以 NuGet 和/或 NPM 包的形式分發,有時也以源代碼形式提供。
ABP CLI 模塊管理命令
命令 | 描述 |
---|
abp add-module | 向解決方案添加多包模塊 |
abp update | 更新模塊和 ABP 包版本 |
abp list-modules | 列出可用的官方 ABP 模塊 |
模塊添加流程
模塊添加由 SolutionModuleAdder
類和 abp add-module
命令協調完成,流程如下:
abp add-module
命令
-
語法:abp add-module <module-name> [options]
-
關鍵選項:
--new
:創建專用于解決方案的新模塊--with-source-code
:下載模塊源代碼到解決方案--add-to-solution-file
:將下載的模塊添加到解決方案文件-s, --solution
:明確指定解決方案文件--skip-db-migrations
:跳過數據庫遷移創建-v, --version
:指定模塊版本(默認為項目的 ABP 版本)
-
示例:
abp add-module Volo.Blogging # 向當前解決方案添加 Blogging 模塊
abp add-module Volo.Blogging -s Acme.BookStore # 向指定解決方案添加模塊
abp add-module ProductManagement --new # 創建名為 ProductManagement 的新模塊
模塊結構與目標項目解析
添加模塊時,ABP 基于 NuGetPackageTarget
和項目命名約定確定解決方案中哪些項目應接收每個包:
目標解析邏輯
ProjectFinder.FindNuGetTargetProjectFile
方法用于解析哪個項目接收每個包:
例如,目標為 EntityFrameworkCore
的包會映射到以 .EntityFrameworkCore.csproj
結尾的項目。
添加帶源代碼的模塊
使用 --with-source-code
或 --new
選項時,模塊源代碼會下載到 /modules
文件夾并設置項目引用:
此方法推薦用于:
數據庫集成
如果添加的模塊包含實體,ABP 會:
- 定位應用程序的
DbContext
- 向
DbContext
添加模塊的配置方法 - 創建新的 EF Core 遷移(除非跳過)
- 運行遷移程序項目(如果可用)
創建數據庫遷移
模塊添加器將:
- 在應用程序中找到 DbContext
- 使用模塊的
Configure{ModuleName}
方法添加必要的實體配置 - 創建名為
Added_{ModuleName}_Module
的新遷移 - 運行遷移程序(如果可用)
客戶端集成
模塊可能包含用于 Angular、Blazor 或 MVC 的客戶端包,模塊添加器會自動集成它們:
Angular 集成
包括:
- 安裝 NPM 包(
ProjectNpmPackageAdder.AddNpmPackageAsync
) - 修改
app.module.ts
和 app-routing.module.ts
以注冊模塊(SolutionModuleAdder.TryConfigureModuleConfigurationsForAngular
) - 按需添加源代碼
Blazor 集成
包括:
- 將 NuGet 包添加到 Blazor 項目
- 運行捆綁命令生成靜態資源(
SolutionModuleAdder.RunBundleForBlazorAsync
)
更新模塊
要更新解決方案中所有與 ABP 相關的 NuGet 和 NPM 包,請使用:
abp update
更新流程
選項
選項 | 描述 |
---|
--npm | 僅更新 NPM 包 |
--nuget | 僅更新 NuGet 包 |
--check-all | 單獨檢查每個包版本 |
-v, --version | 更新到特定版本 |