16 ABP Framework CLI

发布于:2025-08-16 ⋅ 阅读:(18) ⋅ 点赞:(0)

ABP Framework CLI

概述

ABP CLI(Command Line Interface)是 ABP Framework 开发的主要自动化和脚手架工具,通过.NET 全局工具分发,核心功能实现于Volo.Abp.Cli.Core项目,提供项目创建、模块管理、包更新等开发任务的命令支持。

安装与更新

  • 安装:dotnet tool install -g Volo.Abp.Cli
  • 更新:dotnet tool update -g Volo.Abp.Cli

主要命令及功能

命令 对应类 用途
new NewCommand 从模板创建新项目/解决方案
add-module AddModuleCommand 向现有解决方案添加模块
update UpdateCommand 更新解决方案中的 NuGet/NPM 包
install-libs InstallLibsCommand 安装客户端库
bundle BundleCommand 捆绑客户端资产(Blazor/Angular)
get-source GetSourceCommand 下载模块源代码
suite SuiteCommand 启动或管理 ABP Suite
clear-download-cache ClearDownloadCacheCommand 清除模板缓存
login/logout LoginCommand/LogoutCommand 商业功能的身份验证

项目创建:abp new 命令

用法

abp new <project-name> [options]

常见选项

选项 描述 示例
-t, --template 模板名称(默认:app) abp new Acme.BookStore -t module
-u, --ui UI 框架 abp new Acme.BookStore -u angular
-d, --database-provider 数据库提供程序 abp new Acme.BookStore -d mongodb
-o, --output-folder 输出文件夹 abp new Acme.BookStore -o d:\my-project
-v, --version ABP 版本 abp new Acme.BookStore -v 9.2.3
--preview 使用预览版本 abp new Acme.BookStore --preview
--tiered 创建分层解决方案 abp new Acme.BookStore --tiered
-m, --mobile 移动应用选项 abp new Acme.BookStore -m react-native
--dbms 数据库管理系统 abp new Acme.BookStore --dbms mysql
--theme UI 主题 abp new Acme.BookStore --theme basic

示例

abp new Acme.BookStore --tiered -u angular -d mongodb
abp new Acme.BookStore -t module
abp new Acme.MicroserviceSolution -t microservice

项目创建流程

NewCommand.ExecuteAsync
ProjectCreationCommandBase.GetProjectBuildArgsAsync
TemplateProjectBuilder.BuildAsync
AbpIoSourceCodeStore.GetAsync
TemplateProjectBuildPipelineBuilder.Build
ProjectBuildPipelineStep

模板系统

支持的模板类型

  • App:分层应用(开源或商业)
  • App No Layers:简化结构
  • Module:可重用的 ABP 模块
  • Microservice:分布式解决方案
  • Microservice Service:单个微服务

数据库管理系统(--dbms

  • sqlserver:Microsoft SQL Server(默认)
  • mysql:MySQL
  • postgresql:PostgreSQL
  • sqlite:SQLite
  • oracle:Oracle
  • oracle-devart:Oracle(Devart)

UI 框架(-u|--ui

  • mvc:ASP.NET Core MVC(默认)
  • angular:Angular SPA
  • blazor:Blazor WebAssembly
  • blazor-server:Blazor Server
  • blazor-webapp:Blazor Web App(.NET 8+)
  • maui-blazor:MAUI Blazor(移动/桌面)
  • none:无 UI(仅 API)

主题(--theme

  • basic:基本主题
  • leptonx:LeptonX(商业版,商业默认)
  • leptonxlite:LeptonX Lite(开源默认)
  • lepton:Lepton( legacy 商业版)

其他命令示例

get-source 命令

abp get-source <module-name> [options]
abp get-source Volo.Blogging -o c:\temp\blogging

clear-download-cache 命令

abp clear-download-cache

模板文件来源与缓存

存在
不存在
ABP CLI
检查本地缓存
使用缓存的模板ZIP
从远程仓库获取
存储到本地缓存
使用模板ZIP
clear-download-cache命令
删除缓存的模板ZIP

项目验证与命名规则

通过ProjectNameValidator实施以下规则:

  • 不允许默认模板名称(如"MyCompanyName.MyProjectName")
  • 不允许 Windows 保留名称(如"CON"、"AUX"等)
  • 不允许包含"Blazor"的名称(避免冲突)
  • 不允许父目录引用(“…”)
  • 不允许控制字符或代理字符

网站公告

今日签到

点亮在社区的每一天
去签到