ABP CLI
ABP CLI(命令行界面)是一个命令行工具,用于为基于ABP的解决方案或 ABP Studio 功能执行一些常见操作。
安装
ABP CLI 是一个 .NET 全局工具。使用命令行窗口安装它:
dotnet tool install -g Volo.Abp.Studio.Cli
要更新现有安装:
dotnet tool update -g Volo.Abp.Studio.Cli
全局选项
虽然每个命令可能都有一组选项,但有一些全局选项可以与任何命令一起使用:
--skip-cli-version-check或-scvc:跳过检查 ABP CLI 的最新版本。如果不指定,它将检查最新版本,并在有更新的 ABP CLI 版本时显示警告消息。--skip-extension-version-check或-sevc:跳过检查 ABP CLI 扩展的最新版本。如果不指定,它将检查最新版本,并在有更新的 ABP CLI 扩展版本时下载最新版本。--old:ABP CLI 有两个变体:Volo.Abp.Studio.Cli和Volo.Abp.Cli。新功能/模板被添加到Volo.Abp.Studio.Cli中。但是,如果你想使用旧版本,可以在命令的末尾使用此选项。例如:abp new Acme.BookStore --old。--help或-h:显示指定命令的帮助信息。
命令
在详细解释各个命令之前,以下是所有可用命令的列表:
help:显示关于 ABP CLI 使用方法的帮助。cli:更新或移除 ABP CLI。new:基于 ABP 启动模板 生成一个新的解决方案。new-module:基于给定模板生成一个新模块。new-package:基于给定模板生成一个新的包。update:自动更新解决方案中所有与 ABP 相关的 NuGet 和 NPM 包。clean:删除当前文件夹中所有的BIN和OBJ文件夹。add-package:向项目添加一个 ABP 包。add-package-ref:向给定项目添加包引用。install-module:向给定模块添加一个 多包应用程序模块。install-local-module:将本地模块安装到给定模块。list-modules:列出应用程序模块的名称。list-templates:列出可用于创建解决方案的模板名称。get-source:下载模块的源代码。add-source-code:下载源代码,并将包引用替换为项目引用。init-solution:为给定解决方案创建 ABP Studio 配置文件。kube-connect:连接到 Kubernetes 环境。(适用于 Business 或更高许可证)kube-intercept:拦截在 Kubernetes 环境中运行的服务。(适用于 Business 或更高许可证)list-module-sources:列出远程模块源。add-module-source:添加远程模块源。delete-module-source:删除远程模块源。generate-proxy:生成客户端代理以使用 HTTP API 端点。remove-proxy:移除先前生成的客户端代理。switch-to-preview:切换到 ABP 的最新预览版本。switch-to-nightly:将解决方案中所有与 ABP 相关的包切换到最新的 夜间构建版本。switch-to-stable:将解决方案中所有与 ABP 相关的包切换到最新的稳定版本。switch-to-local:将解决方案中的 NuGet 包引用更改为本地项目引用。upgrade:将应用程序转换为使用专业模块。translate:当你在源代码控制仓库中有多个 JSON 本地化 文件时,简化本地化文件的翻译过程。login:使用你的 abp.io 用户名和密码在你的计算机上进行身份验证。login-info:显示当前用户的登录信息。logout:如果你之前已通过身份验证,则从你的计算机注销。bundle:为 ABP Blazor 和 MAUI Blazor 项目生成脚本和样式引用。install-libs:为 MVC / Razor Pages 和 Blazor Server UI 类型安装 NPM 包。clear-download-cache:清除模板下载缓存。check-extensions:检查 ABP CLI 扩展的最新版本。install-old-cli:安装旧的 ABP CLI。generate-razor-page:生成一个页面类,你可以在 ASP.NET Core 管道中使用它来返回 HTML 页面。
help
显示 ABP CLI 的基本用法。
用法:
abp help [command-name]
示例:
abp help # 显示通用帮助。
abp help new # 显示关于 "new" 命令的帮助。
cli
更新或移除 ABP CLI。
用法:
abp cli [command-name]
示例:
abp cli update
abp cli update --preview
abp cli update --version 1.0.0
abp cli remove
abp cli check-version
abp cli clear-cache
new
基于 ABP 启动模板 生成一个新的解决方案。参见 新建解决方案示例命令
用法:
abp new <solution-name> [options]
示例:
abp new Acme.BookStore
Acme.BookStore是解决方案名称。- 通常的命名约定是类似于 YourCompany.YourProject。但是,你也可以使用不同的命名,如 YourProject(单层命名空间)或 YourCompany.YourProduct.YourModule(三层命名空间)。
更多示例,请访问 ABP CLI 创建解决方案示例
选项
--template或-t:指定模板名称。默认模板名称是app,用于生成应用程序解决方案。可用模板:empty:空解决方案模板。app:应用程序模板。附加选项:--ui-framework或-u:指定 UI 框架。默认框架是mvc。可用框架:mvc:ASP.NET Core MVC。此模板有一些附加选项:--tiered:创建一个分层解决方案,其中 Web 层和 Http API 层在物理上是分离的。如果不指定,则创建一个分层较少的解决方案,该方案复杂性较低,适用于大多数场景。(适用于 Team 或更高许可证)
angular:Angular UI。此模板有一些附加选项:--tiered:身份认证服务器项目作为单独的项目运行,且运行在不同的端点。它将身份认证服务器与 API 宿主应用程序分离。如果不指定,服务器端将只有一个端点。(适用于 Team 或更高许可证)--progressive-web-app或-pwa:指定项目为渐进式 Web 应用程序。
blazor-webapp:Blazor Web App UI。此模板有一些附加选项:--tiered:身份认证服务器和 API 宿主项目作为单独的项目运行,且运行在不同的端点。它有 3 个启动项目:HttpApi.Host、AuthServer 和 Blazor,每个项目运行在不同的端点。如果不指定,你的 Web 项目将只有一个端点。--progressive-web-app或-pwa:指定项目为渐进式 Web 应用程序。
blazor:Blazor UI。此模板有一些附加选项:--tiered:身份认证服务器项目作为单独的项目运行,且运行在不同的端点。它将身份认证服务器与 API 宿主应用程序分离。如果不指定,服务器端将只有一个端点。(适用于 Team 或更高许可证)--progressive-web-app或-pwa:指定项目为渐进式 Web 应用程序。
blazor-server:Blazor Server UI。此模板有一些附加选项:--tiered:身份认证服务器和 API 宿主项目作为单独的项目运行,且运行在不同的端点。它有 3 个启动项目:HttpApi.Host、AuthServer 和 Blazor,每个项目运行在不同的端点。如果不指定,你的 Web 项目将只有一个端点。(适用于 Team 或更高许可证)
maui-blazor:Blazor Maui UI(适用于 Team 或更高许可证)。此模板有一些附加选项:--tiered:身份认证服务器和 API 宿主项目作为单独的项目运行,且运行在不同的端点。它有 3 个启动项目:HttpApi.Host、AuthServer 和 Blazor,每个项目运行在不同的端点。如果不指定,你的 Web 项目将只有一个端点。
no-ui:无 UI。不会创建前端层。此模板有一些附加选项:--tiered:身份认证服务器项目作为单独的项目运行,且运行在不同的端点。它将身份认证服务器与 API 宿主应用程序分离。如果不指定,服务器端将只有一个端点。(适用于 Team 或更高许可证)
--mobile或-m:指定移动应用程序框架。默认值是none。可用框架:none:无移动应用程序。react-native:React Native。此移动选项仅适用于活跃的 许可证所有者。maui:MAUI。此移动选项仅适用于 ABP。(适用于 Team 或更高许可证)
--database-provider或-d:指定数据库提供程序。默认提供程序是ef。可用提供程序:ef:Entity Framework Core。mongodb:MongoDB。
--connection-string或-cs:覆盖所有appsettings.json文件中的默认连接字符串。对于 EF Core,默认连接字符串是Server=localhost;Database=MyProjectName;Trusted_Connection=True,并且配置为使用 SQL Server。如果你想使用 EF Core,但需要更改数据库管理系统,可以在(创建解决方案后)按照此处描述 进行更改。注意: 指定连接字符串时,请确保用双引号括起来,例如:--connection-string "Server=localhost;Database=MyProjectName;Trusted_Connection=True"。--skip-migrations或-sm:跳过创建初始数据库迁移步骤。--skip-migrator或-smr:跳过运行数据库迁移程序步骤。--public-website:公共网站是一个面向公众的网站,用于描述你的项目、列出你的产品并进行搜索引擎优化以达到营销目的。用户可以通过此网站在你的网站上登录和注册。此选项仅包含在 PRO 模板中。--without-cms-kit:当你向解决方案添加公共网站时,它会自动包含 CmsKit 模块。如果你不想包含 CmsKit,可以使用此参数。
--separate-tenant-schema:为租户模式创建不同的 DbContext。如果不指定,租户模式将与宿主模式共享。此选项仅包含在 PRO 模板中。--sample-crud-page或-scp:将 BookStore 示例添加到你的解决方案中。--theme或-th:指定主题。默认主题是leptonx。可用主题:leptonx:LeptonX 主题。(适用于 Team 或更高许可证)leptonx-lite:LeptonX-Lite 主题。basic:基础主题。
--use-open-source-template或-uost:使用开源模板。(适用于 Team 或更高许可证)
app-nolayers:单层应用程序模板。附加选项:--ui-framework或-u:指定 UI 框架。默认框架是mvc。可用框架:mvc:ASP.NET Core MVC。此模板有一些附加选项:angular:Angular UI。此模板有一些附加选项:blazor:Blazor UI。此模板有一些附加选项:blazor-server:Blazor Server UI。此模板有一些附加选项:no-ui:无 UI。不会创建前端层。此模板有一些附加选项:
--database-provider或-d:指定数据库提供程序。默认提供程序是ef。可用提供程序:ef:Entity Framework Core。mongodb:MongoDB。
--connection-string或-cs:覆盖所有appsettings.json文件中的默认连接字符串。对于 EF Core,默认连接字符串是Server=localhost;Database=MyProjectName;Trusted_Connection=True,并且配置为使用 SQL Server。如果你想使用 EF Core,但需要更改数据库管理系统,可以在(创建解决方案后)按照此处描述 进行更改。注意: 指定连接字符串时,请确保用双引号括起来,例如:--connection-string "Server=localhost;Database=MyProjectName;Trusted_Connection=True"。--skip-migrations或-sm:跳过创建初始数据库迁移步骤。--skip-migrator或-smr:跳过运行数据库迁移程序步骤。--sample-crud-page或-scp:将 BookStore 示例添加到你的解决方案中。--theme:指定主题。默认主题是leptonx。可用主题:leptonx:LeptonX 主题。(适用于 Team 或更高许可证)leptonx-lite:LeptonX-Lite 主题。basic:基础主题。
--use-open-source-template或-uost:使用开源模板。(适用于 Team 或更高许可证)
microservice:微服务解决方案模板(适用于 Business 或更高许可证)。附加选项:--ui-framework或-u:指定 UI 框架。默认框架是mvc。可用框架:mvc:ASP.NET Core MVC。此模板有一些附加选项:angular:Angular UI。此模板有一些附加选项:blazor:Blazor UI。此模板有一些附加选项:blazor-server:Blazor Server UI。此模板有一些附加选项:maui-blazor:Blazor Maui UI。此模板有一些附加选项:no-ui:无 UI。不会创建前端层。此模板有一些附加选项:
--mobile或-m:指定移动应用程序框架。默认值是none。可用框架:none:无移动应用程序。react-native:React Native。maui:MAUI。
--database-provider或-d:指定数据库提供程序。默认提供程序是ef。可用提供程序:ef:Entity Framework Core。mongodb:MongoDB。
--theme:指定主题。默认主题是leptonx。可用主题:leptonx:LeptonX 主题。basic:基础主题。
--public-website:公共网站是一个面向公众的网站,用于描述你的项目、列出你的产品并进行搜索引擎优化以达到营销目的。用户可以通过此网站在你的网站上登录和注册。此选项仅包含在 PRO 模板中。--no-grafana-dashboard或-ngd:不向解决方案添加示例 Grafana 仪表板。
--output-folder或-o:指定输出文件夹。默认值是当前目录。--local-framework-ref或-lfr:使用对 ABP 框架的本地项目引用,而不是使用 NuGet 包。它会尝试从ide-state.json中查找路径。该文件位于%UserProfile%\.abp\studio\ui\ide-state.json(对于 Windows)和~/.abp/studio/ui/ide-state.json(对于 MAC)。--create-solution-folder或-csf:指定项目是放在输出文件夹内的新文件夹中,还是直接放在输出文件夹中。--database-management-system或-dbms:设置数据库管理系统。默认是 SQL Server。支持的 DBMS:SqlServerMySQLPostgreSQLSQLite(app&app-nolayers)Oracle(app&app-nolayers)Oracle-Devart(app&app-nolayers)
--dont-run-install-libs:跳过安装客户端包。--dont-run-bundling:跳过为 Blazor 包进行捆绑。--no-kubernetes-configuration或-nkc:跳过 Kubernetes 配置文件。--no-social-logins或-nsl:跳过社交登录配置。--no-tests或-ntp:不添加测试项目。- 模块选项:如果你不希望将某些模块添加到解决方案中,可以跳过它们,或者如果你想要它们,可以包含它们(适用于 Team 或更高许可证)。可用命令:
-no-saas:跳过 Saas 模块。-no-gdpr:跳过 GDPR 模块。-no-openiddict-admin-ui:跳过 OpenIddict Admin UI 模块。-no-audit-logging:跳过审计日志模块。-no-language-management:跳过语言管理模块。-no-text-template-management:跳过文本模板管理模块。-file-management:包含文件管理模块。-chat:包含聊天模块。
--legacy:生成一个旧版解决方案。trust-version:信任用户的版本,不检查该版本是否存在。如果在缓存中找到具有给定版本的模板,则使用它,否则抛出异常。
new-module
生成一个新模块。
abp new-module <模块名称> [选项]
示例:
abp new-module Acme.BookStore -t module:ddd
选项
--template或-t:指定模板名称。默认模板名称是module:ddd,它生成一个 DDD 模块。模块模板由主模板提供,请参阅它们自己的启动模板文档以获取可用模块。empty:empty和module:ddd模板适用于所有解决方案结构。--output-folder或-o:指定输出文件夹。默认值是当前目录。--target-solution或-ts:如果设置,新模块将被添加到给定的解决方案中。否则,新模块将被添加到文件系统中最近的解决方案中。如果找不到解决方案,将抛出错误。--solution-folder或-sf:指定在 解决方案资源管理器 虚拟文件夹系统中的目标文件夹。--database-provider或-d:指定数据库提供程序。默认提供程序是ef。此选项仅在模块模板支持时可用。如果模块模板支持,你可以添加多个用逗号分隔的值,例如ef,mongodb。可用提供程序:ef:Entity Framework Core。mongodb:MongoDB。
--ui-framework或-u:指定 UI 框架。此选项仅在模块模板支持时可用。如果模块模板支持,你可以添加多个用逗号分隔的值,例如mvc,angular。可用框架:mvc:ASP.NET Core MVC。angular:Angular UI。blazor:Blazor UI。blazor-server:Blazor Server UI。
new-package
生成一个新的包。
abp new-package [选项]
示例:
abp new-package --name Acme.BookStore.Domain --template lib.domain
选项
--template或-t:指定模板名称。此参数没有默认值,必须设置。可用模板及其子选项:lib.class-librarylib.domain-shared--add-localization:包含默认的本地化配置和语言文件。
lib.domain--add-settings:包含默认的设置配置。--add-db-properties:包含默认的数据库属性类。--add-domain-shared:包含一个额外的域共享包。
lib.application-contractslib.application--add-mapperly:添加 Mapperly 配置。--add-application-contracts:包含一个额外的合约包。
lib.ef--include-migrations:允许在此包上进行迁移操作。--connection-string-name:默认值是包命名空间的最后一部分(或简称为包名称)。--connection-string:连接字符串值。默认值为空。你可以稍后设置它。注意: 指定连接字符串时,请确保用双引号括起来,例如:--connection-string "Server=localhost;Database=MyProjectName;Trusted_Connection=True"。
lib.mongodblib.http-apilib.http-api-clientlib.mvc--add-mapperly:添加 Mapperly 配置。
lib.blazor--add-mapperly:添加 Mapperly 配置。--add-menu-contributors:包含默认的菜单贡献者。
lib.blazor-wasmlib.blazor-serverhost.http-api--add-serilog:包含 Serilog 配置。--add-swagger:包含 Swagger 配置。
host.mvc--add-serilog:包含 Serilog 配置。--add-swagger:包含 Swagger 配置。
host.blazor-wasm--backend:模块中后端项目的名称(不是路径)。
host.blazor-serverabp.consolecsharp.consolecsharp.library
--module-file或-m:如果设置,新包将被添加到给定模块中。否则,新包将被添加到文件系统中最近的模块中。如果找不到模块,将抛出错误。--name或-n:指定包的名称。如果未设置,将根据模板类型和模块名称生成一个名称。--folder或-f:指定目标模块虚拟文件夹系统中的目标文件夹。
update
更新所有与 ABP 相关的包可能很繁琐,因为框架和模块有很多包。此命令会自动将解决方案或项目中所有与 ABP 相关的 NuGet 和 NPM 包更新到最新版本。你可以在解决方案的根文件夹中运行它。
用法:
abp update [选项]
- 如果在包含 .csproj 文件的目录中运行,它会将项目的所有与 ABP 相关的包更新到最新版本。
- 如果在包含 .sln 文件的目录中运行,它会将解决方案的所有项目的所有与 ABP 相关的包更新到最新版本。
- 如果在包含子文件夹中多个解决方案的目录中运行,它可以更新所有解决方案,包括 Angular 项目。
请注意,此命令可以将你的解决方案从先前版本升级,也可以将解决方案从预览版升级到同一版本的稳定版。
选项
--npm:仅更新 NPM 包。--nuget:仅更新 NuGet 包。--solution-path或-sp:指定解决方案路径。默认使用当前目录。--solution-name或-sn:指定解决方案名称。默认在目录中搜索*.sln文件。--check-all:分别检查每个包的新版本。默认为false。--version或-v:指定用于更新的版本。如果未指定,则使用最新版本。--leptonx-version或-lv:指定用于更新的 LeptonX 版本。如果未指定,则使用最新版本或与--version参数兼容的版本。
clean
删除当前文件夹中所有的 BIN 和 OBJ 文件夹。
用法:
abp clean
add-package
将 ABP 包添加到项目中,通过:
- 将相关的 nuget 包作为依赖项添加到项目。
- 将
[DependsOn(...)]属性添加到项目中的模块类(请参阅 模块开发文档)。
请注意,添加的模块可能需要额外的配置,这通常在相关包的文档中说明。
基本用法:
abp add-package <包名称> [选项]
示例:
abp add-package Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic
- 此示例将
Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic包添加到项目中。
选项
--project或-p:指定项目(.csproj)文件路径。如果未指定,CLI 会尝试在当前目录中查找 .csproj 文件。--with-source-code:将包的源代码下载到你的解决方案文件夹,并使用本地项目引用而不是 NuGet/NPM 包。--add-to-solution-file:将下载的包添加到你的解决方案文件中,因此当你打开 IDE 中的解决方案时,也会看到该包。(仅当--with-source-code为 True 时可用)
目前只有基础主题包的源代码可以下载( MVC 和 Blazor )。
- Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic
- Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme
- Volo.Abp.AspNetCore.Components.Web.BasicTheme
- Volo.Abp.AspNetCore.Components.Server.BasicTheme
add-package-ref
将一个或多个包引用添加到目标项目,同时添加 ABP 模块依赖项。引用项目和目标项目必须属于同一模块。
abp add-package-ref <包名称列表> [选项]
示例:
abp add-package-ref Acme.BookStore.Domain
abp add-package-ref "Acme.BookStore.Domain Acme.BookStore.Domain.Shared" -t Acme.BookStore.Web
选项
--target-project或-t:将添加引用的项目名称。如果未设置,将使用当前目录中的项目。
install-module
将作为 nuget 包发布的模块安装到本地模块中。根据项目的类型创建项目关系。例如:一个 lib.domain-shared 项目被添加到 lib.domain-shared 项目。
abp install-module <模块名称> [选项]
示例:
abp install-module Volo.Blogging
abp install-module Volo.Blogging -t "modules/crm/Acme.Crm.abpmdl"
选项
--target-module或-t:目标模块的路径(或文件夹路径),其他模块将被安装到该模块中。如果未设置,将使用当前目录中最近的模块。--version或-v:要安装的模块的 NuGet 版本。
install-local-module
将一个模块安装到另一个模块中。根据项目的类型创建项目关系。例如:一个 lib.domain-shared 项目被添加到 lib.domain-shared 项目。
abp install-local-module <模块路径> [选项]
示例:
abp install-local-module Acme.OrderManagement
abp install-local-module Acme.OrderManagement -t "modules/crm/Acme.Crm.abpmdl"
选项
--target-module或-t:目标模块的路径(或文件夹路径),其他模块将被安装到该模块中。如果未设置,将使用当前目录中最近的模块。
list-modules
列出开源应用程序模块的名称。
用法:
abp list-modules [选项]
示例:
abp list-modules
list-templates
列出所有可用于创建解决方案的模板。
用法:
abp list-templates
get-source
将模块的源代码下载到你的计算机。
用法:
abp get-source <模块名称> [选项]
示例:
abp get-source Volo.Blogging
abp get-source Volo.Blogging --local-framework-ref --abp-path D:\GitHub\abp
选项
--output-folder或-o:指定源代码将下载到的目录。如果未指定,则使用当前目录。--version或-v:指定要下载的源代码的版本。如果未指定,则使用最新版本。--preview:如果未指定版本选项,此选项指定是否使用最新的 预览版本 而不是最新的稳定版本。--local-framework-ref --abp-path:你计算机中 ABP GitHub 仓库 的路径。这将用于将项目引用转换到你的本地系统。如果未指定,项目引用将被转换为 NuGet 引用。
add-source-code
下载模块的源代码,并将包引用替换为项目引用。仅当你的 ABP 商业许可证具有源代码访问权限,或者目标模块的源代码对所有类型的 ABP 商业许可证免费时,此命令才有效。
abp add-source-code <模块名称> [选项]
示例:
abp add-source-code Volo.Chat --add-to-solution-file
选项
--target-module或-t:将引用下载的源代码的模块。如果未设置,将使用当前目录中的模块。--add-to-solution-file:将下载的源代码添加到 C# 解决方案文件和 ABP Studio 解决方案文件中。
init-solution
创建解决方案所需文件,使其可被 ABP Studio 读取。如果解决方案是通过 ABP Studio 生成的,你不需要此命令。但如果它不是由 ABP Studio 生成的,你需要此命令使其与 ABP Studio 兼容。
abp init-solution [选项]
示例:
abp init-solution --name Acme.BookStore
选项
--name或-n:解决方案的名称。如果未设置,它将与文件系统中最近的 C# 解决方案名称相同。
kube-connect
连接到 Kubernetes 集群(适用于 Business 或更高许可证)。按 ctrl+c 断开连接。
abp kube-connect [选项]
示例:
abp kube-connect
abp kube-connect -p Default.abpk8s.json
abp kube-connect -c docker-desktop -ns mycrm-local
选项
--profile或-p:要使用的 Kubernetes 配置文件路径或名称。路径可以是相对路径(相对于当前目录)或完整路径,或者,如果你在与解决方案或配置文件相同的目录中运行此命令,你可以直接给出配置文件的名称。如果使用--namespace和--context参数,则不需要此参数。--namespace或-ns:服务运行所在的命名空间。--context或-c:服务运行所在的上下文。--wireguard-password或-wp:配置文件的 Wireguard 密码。如果你已在 ABP Studio 用户界面上设置过,则不需要此选项。--solution-path或-sp:解决方案的路径。如果未设置,将使用文件系统中最近的解决方案。
kube-intercept
拦截在 Kubernetes 环境中运行的服务(适用于 Business 或更高许可证)。按 ctrl+c 停止拦截。
abp kube-intercept <服务名称> [选项]
示例:
abp kube-intercept mycrm-product-service -ns mycrm-local
abp kube-intercept mycrm-product-service -ns mycrm-local -a MyCrm.ProductService.HttpApi.Host.csproj
abp kube-intercept mycrm-product-service -ns mycrm-local -a MyCrm.ProductService.HttpApi.Host.csproj -pm 8080:80,8081:443
选项
--application或-a:将拦截服务的项目的相对或完整路径。如果未设置,将使用当前目录中的项目。--namespace或-ns:服务运行所在的命名空间。--context或-sc:服务运行所在的上下文。默认值为docker-desktop。--port-mappings或-pm:服务的端口映射。
list-module-sources
使用此命令,你可以查看可用于安装模块的远程模块源列表。它类似于 Visual Studio 中的 NuGet 源列表。
abp list-module-sources
add-module-source
将远程模块源添加到可用于安装模块的源列表中。
abp add-module-source [选项]
你可以创建自己的模块源并将其添加到列表中。它接受名称和 URL 或路径作为参数。如果你提供路径,它应该是包含模块 json 文件的本地路径。如果你提供 URL,它应该是包含模块 json 文件的 URL。json 文件应具有以下格式:
{
"name": "ABP 开源模块",
"modules" : {
"Volo.Abp.Account": {},
"Volo.Abp.AuditLogging": {},
"Volo.Abp.Identity": {},
...
}
}
当你添加一个模块源后,就可以使用 install-module 命令从该源安装模块。它会尝试从 NuGet 查找包,例如 Volo.Abp.Account.Installer。你可以配置一个私有的 NuGet 源,并将你的模块发布到该源。每个模块都有一个安装程序包,用于将模块安装到解决方案中。当你将模块发布到私有源时,也应将安装程序包发布到同一源。
示例:
abp add-module-source -n "自定义源" -p "D:\packages\abp\modules.json"
abp add-module-source -n "自定义 HTTP 源" -p "https://raw.githubusercontent.com/x/abp-module-store/main/abp-module-store.json"
选项
--name或-n:模块源的名称。--path或-p:模块源的路径。它可以是本地路径或 URL。
delete-module-source
从可用于安装模块的源列表中删除一个远程模块源。
abp delete-module-source [选项]
示例:
abp delete-module-source -n "自定义源"
选项
--name或-n:模块源的名称。
generate-proxy
为你的 HTTP API 生成 Angular、C# 或 JavaScript 服务代理,以便从客户端轻松使用你的服务。运行此命令前,你的宿主(服务器)应用程序必须处于运行状态。
用法:
abp generate-proxy -t <客户端类型> [选项]
示例:
abp generate-proxy -t ng -url https://localhost:44302/
abp generate-proxy -t js -url https://localhost:44302/
abp generate-proxy -t csharp -url https://localhost:44302/
选项
--type或-t:客户端类型的名称。可用客户端:csharp:C#,在*.HttpApi.Client项目目录中工作。此客户端有一些附加选项:--without-contracts:避免生成应用服务接口、类、枚举和 DTO 类型。--folder:放置生成的 C# 代码的文件夹名称。默认值:ClientProxies。
ng:Angular。此客户端有一些附加选项:--api-name或-a:在/src/environments/environment.ts中定义的 API 端点名称。默认值:default。--source或-s:指定用于解析根命名空间和 API 定义 URL 的 Angular 项目名称。默认值:defaultProject。--target:指定放置生成的代码的 Angular 项目名称。默认值:defaultProject。--module:后端模块名称。默认值:app。--entry-point:指定放置生成代码的目标 Angular 项目。--url:指定 API 定义 URL。默认值是环境文件中 API 名称的 URL。--prompt或-p:从命令行提示符询问选项(针对未指定的选项)。
js:JavaScript,在*.Web项目目录中工作。此客户端有一些附加选项:--output或-o:放置生成的代码的 JavaScript 文件路径或文件夹。
--module或-m:指定要为其生成代理的后端模块的名称。默认值:app。--working-directory或-wd:执行目录。适用于csharp和js客户端类型。--url或-u:API 定义来源的 URL。--service-type或-st:指定要生成的服务类型。application、integration和all,C# 默认为all,JavaScript / Angular 默认为application。
更多信息请参阅 Angular 服务代理文档。
remove-proxy
从 Angular、CSharp 或 JavaScript 应用程序中移除先前生成的代理代码。运行此命令前,你的宿主(服务器)应用程序必须处于运行状态。
当你之前为多个模块生成了代理,后来需要移除其中一个时,这尤其有用。
用法:
abp remove-proxy -t <客户端类型> [选项]
示例:
abp remove-proxy -t ng
abp remove-proxy -t js -m identity -o Pages/Identity/client-proxies.js
abp remove-proxy -t csharp --folder MyProxies/InnerFolder
选项
--type或-t:客户端类型的名称。可用客户端:csharp:C#,在*.HttpApi.Client项目目录中工作。此客户端有一些附加选项:--folder:放置生成的 C# 代码的文件夹名称。默认值:ClientProxies。
ng:Angular。此客户端有一些附加选项:--api-name或-a:在/src/environments/environment.ts中定义的 API 端点名称。默认值:default。--source或-s:指定用于解析根命名空间和 API 定义 URL 的 Angular 项目名称。默认值:defaultProject。--target:指定放置生成的代码的 Angular 项目名称。默认值:defaultProject。--url:指定 API 定义 URL。默认值是环境文件中 API 名称的 URL。--prompt或-p:从命令行提示符询问选项(针对未指定的选项)。
js:JavaScript,在*.Web项目目录中工作。此客户端有一些附加选项:--output或-o:放置生成的代码的 JavaScript 文件路径或文件夹。
--module或-m:指定要为其生成代理的后端模块的名称。默认值:app。--working-directory或-wd:执行目录。适用于csharp和js客户端类型。--url或-u:API 定义来源的 URL。
更多信息请参阅 Angular 服务代理文档。
switch-to-preview
你可以使用此命令将你的解决方案或项目切换到 ABP 的最新预览版本。
用法:
abp switch-to-preview [选项]
选项
--directory或-d:指定目录。解决方案或项目应位于该目录或其任何子目录中。如果未指定,默认为当前目录。
switch-to-nightly
你可以使用此命令将你的解决方案或项目切换到 ABP 包的最新 夜间构建 预览版本。
用法:
abp switch-to-nightly [选项]
选项
--directory或-d:指定目录。解决方案或项目应位于该目录或其任何子目录中。如果未指定,默认为当前目录。
switch-to-stable
如果你正在使用 ABP 预览包(包括夜间预览版),可以使用此命令切换回最新的稳定版本。
用法:
abp switch-to-stable [选项]
选项
--directory或-d:指定目录。解决方案或项目应位于该目录或其任何子目录中。如果未指定,默认为当前目录。
switch-to-local
将指定文件夹(及其所有深度的子文件夹)中所有 .csproj 文件的 NuGet 包引用更改为本地项目引用。它不仅限于 ABP 或模块包。
用法:
abp switch-to-local [选项]
选项
--solution或-s:指定解决方案目录。解决方案应位于该目录或其任何子目录中。如果未指定,默认为当前目录。--paths或-p:指定项目所在的本地路径。你可以使用|字符分隔路径。
示例:
abp switch-to-local --paths "D:\Github\abp|D:\Github\my-repo"
upgrade
将 ABP 模块升级为专业模块,例如将 Identity 升级为 Identity Pro。你可以将此用于 单层 Web 应用程序 和 分层 Web 应用程序 模板。 此命令专为在获得许可证之前已开始开发的用户设计。因此,此命令需要许可证。
用法:
abp upgrade [-t <模板名称>] [选项]
示例:
abp upgrade -t app
abp upgrade -t app --language-management --gdpr --audit-logging-ui --text-template-management --openiddict-pro
abp upgrade -t app-nolayers --audit-logging-ui
abp upgrade -t app-nolayers -p D:\MyProjects\MyProject
选项
--path或-p:指定模块路径。模块应位于该目录中。如果未指定,默认为当前目录。--gdpr:同时安装 GDPR 模块。--language-management:同时安装语言管理模块。--audit-logging-ui:同时安装审计日志 Pro(UI)模块。--text-template-management:同时安装文本模板管理模块。--openiddict-pro:同时安装 OpenIddict Pro(UI)模块。
translate
当你源代码控制仓库中有多个 JSON 本地化 文件时,简化 本地化 文件的翻译过程。
- 此命令将基于参考文化创建一个统一的 json 文件。
- 它搜索当前目录和所有子目录(递归地)中的所有本地化
JSON文件。然后创建一个包含所有需要翻译的条目的单个文件(默认命名为abp-translation.json)。 - 一旦你翻译了此文件中的条目,就可以使用
--apply命令将更改应用到原始本地化文件。
此命令的主要目的是翻译 ABP 本地化文件(因为 abp 仓库 有数十个位于不同目录中需要翻译的本地化文件)。
创建翻译文件
第一步是创建统一的翻译文件:
abp translate -c <文化> [选项]
示例:
abp translate -c de
此命令为 de(德语)文化创建了统一的翻译文件。
附加选项
--reference-culture或-r:默认en。指定参考文化。--output或-o:输出文件名。默认abp-translation.json。--all-values或-all:包含所有要翻译的键。默认情况下,统一翻译文件仅包含目标文化缺失的文本。如果你可能需要修订先前已翻译的值,请指定此参数。
应用更改
一旦你翻译了统一翻译文件中的条目,就可以使用 --apply 参数将更改应用到原始本地化文件:
abp translate --apply # 应用所有更改
abp translate -a # --apply 的快捷方式
然后在你的源代码控制系统上检查更改,确保它已更改了正确的文件,如果你翻译了 ABP 资源,请发送 Pull Request。提前感谢你的贡献。
附加选项
--file或-f:默认:abp-translation.json。翻译文件(仅在你之前使用了--output选项时使用)。
在线 DeepL 翻译
translate 命令也支持在线翻译。你需要提供你的 DeepL 认证密钥。
它将搜索目录和子目录中的所有 en.json(参考文化) 文件,然后翻译并生成相应的 zh-Hans.json(文化) 文件。
abp translate -c zh-Hans --online --deepl-auth-key <认证密钥>
login
CLI 的某些功能需要登录到 ABP 平台。login 命令支持以下用法选项:
abp login # 打开默认浏览器通过 abp.io 登录到 ABP 平台
abp login --device # 使用设备登录流程
abp login username -p ****** --password # 使用用户名密码登录
新登录会覆盖已有的活动会话。
login-info
显示你的登录信息,例如 姓名、姓氏、用户名、邮箱地址 和 组织。
abp login-info
logout
通过从你的计算机移除会话令牌来注销。
abp logout
bundle
此命令为 ABP Blazor WebAssembly 和 MAUI Blazor 项目生成脚本和样式引用,并更新 index.html 文件。它帮助开发者轻松管理 ABP 模块所需的依赖项。为了使 bundle 命令工作,其执行目录或传入的 --working-directory 参数指定的目录必须包含一个 Blazor 或 MAUI Blazor 项目文件(*.csproj)。
用法:
abp bundle [选项]
如果你正在使用全局资源功能,则不再需要此命令。更多信息请参阅 管理全局脚本和样式。
选项
--working-directory或-wd:指定工作目录。当执行目录不包含 Blazor 项目文件时,此选项很有用。--force或-f:强制在生成引用前构建项目。--project-type或-t:指定项目类型。默认类型是webassembly。可用类型:webassemblymaui-blazor
--version或-v:指定项目正在使用的 ABP Framework 版本。这对于使用集中式包管理的人很有帮助。
bundle 命令读取 Blazor 和 MAUI Blazor 项目内部的 appsettings.json 文件以获取捆绑选项。有关在 Blazor 或 MAUI Blazor 应用中管理样式和脚本引用的更多详细信息,请参阅 管理全局脚本和样式。
install-libs
此命令为 MVC / Razor Pages 和 Blazor Server UI 类型安装 NPM 包。其执行目录或传入的 --working-directory 参数指定的目录必须包含一个项目文件(*.csproj)。
install-libs 命令读取 abp.resourcemapping.js 文件来管理包。更多详细信息请参阅 客户端包管理。
用法:
abp install-libs [选项]
选项
--working-directory或-wd:指定工作目录。当执行目录不包含项目文件时,此选项很有用。
check-extensions
此命令检查已安装的 ABP CLI 扩展,并在必要时更新它们。
用法:
abp check-extensions
install-old-cli
此命令安装旧版本的 ABP CLI,如果指定了版本,则安装特定版本。否则,它安装最新稳定版本的旧 ABP CLI。然后,你可以通过简单地在命令末尾传递 --old 参数或使用 abp-old 作为执行命令来直接使用旧的 ABP CLI。
用法:
abp install-old-cli [选项]
generate-razor-page
generate-razor-page 命令生成一个页面类,然后你可以在 ASP.NET Core 管道中使用它来返回 HTML 页面。
用法:
- 在
Views文件夹中创建一个继承自AbpCompilationRazorPageBase的新Razor Page(MyPage.cshtml)。 - 在同一文件夹中创建一个
MyPageModel类。 - 在同一文件夹中创建
MyPage.js和MyPage.css文件。 - 将以下代码添加到
MyPage.cshtml、MyPage.css和MyPage.js文件中。
public class MyPageModel
{
public string Message { get; set; }
public MyPageModel(string message)
{
Message = message;
}
}
@using System.Globalization
@using Volo.Abp.AspNetCore.RazorViews
@inherits AbpCompilationRazorPageBase
@{
Response.ContentType = "text/html; charset=utf-8";
Response.StatusCode = 200;
}
@functions{
public MyPage(MyPageModel model)
{
Model = model;
}
public MyPageModel Model { get; set; }
}
<html lang="@HtmlEncoder.Encode(CultureInfo.CurrentCulture.Name)">
<head>
<meta charset="utf-8" />
<style>
<%$ include: MyPage.css %>
</style>
<title>@HtmlEncoder.Encode(Model.Message)</title>
</head>
<body>
<h3>@HtmlEncoder.Encode(Model.Message)</h3>
<ul class="list-group">
@for(int i = 0; i < 10; i++)
{
<li class="list-group-item">@i item</li>
}
</ul>
<script>
//<!--
<%$ include: MyPage.js %>
//-->
</script>
</body>
</html>
body {
background-color: #65b2ff;
color: #495057;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
console.log('MyPage.js loaded!');
- 最后,在
Views文件夹下运行generate-razor-page命令:
> abp generate-razor-page
正在为 /MyProject/Views 中的页面生成代码文件
正在为页面 MyPage.cshtml 生成代码文件 ...
内联文件 MyPage.css
内联文件 MyPage.js
完成!
成功生成 1 个文件。
输出将类似于上述命令输出,并且 MyPage.Designer.cs 文件将在同一文件夹中创建。它是一个标准的 C# 类,你可以在管道中使用它来返回 HTML 页面:
app.Use(async (httpContext, next) =>
{
if (true) // 你的条件
{
var page = new MyPage(new MyPageModel("测试消息"));
await page.ExecuteAsync(httpContext);
}
else
{
await next();
}
});
选项
--version或-v:指定要安装的 ABP CLI 版本。
抠丁客



