ABP CLI - 新建解决方案示例命令
abp new 命令基于 ABP 模板创建一个 ABP 解决方案或其他工件。ABP CLI 提供了多个参数来创建新的 ABP 解决方案。本文档将向您展示一些创建新解决方案的示例命令。所有项目名称均为 Acme.BookStore。当前可用的移动项目是 React Native 和 MAUI 移动应用(它们*适用于 Team 或更高级别的许可证)。可用的数据库提供程序是 Entity Framework Core 和 MongoDB。所有命令均以 abp new 开头。
Angular
以下命令用于创建 Angular UI 项目:
Entity Framework Core,无移动应用,在新文件夹中创建项目:
abp new Acme.BookStore -u angular --mobile none --database-provider ef -csfEntity Framework Core,默认应用模板,独立身份验证服务器,在新文件夹中创建项目:
abp new Acme.BookStore -t app -u angular -m none --separate-auth-server --database-provider ef -csfEntity Framework Core,自定义连接字符串,在新文件夹中创建项目:
abp new Acme.BookStore -u angular -csf --connection-string "Server=localhost;Database=MyDatabase;Trusted_Connection=True"MongoDB,默认应用模板,包含移动项目,在
C:\MyProjects\Acme.BookStore中创建解决方案abp new Acme.BookStore -u angular --database-provider mongodb --output-folder C:\MyProjects\Acme.BookStoreMongoDB,默认应用模板,无移动应用,独立身份验证服务器,在新文件夹中创建项目:
abp new Acme.BookStore -t app -u angular -m none --separate-auth-server --database-provider mongodb -csf无数据库迁移!,将不生成数据库迁移
abp new Acme.BookStore -u angular --skip-migrations --skip-migrator
MVC
以下命令用于创建 MVC UI 项目:
Entity Framework Core,无移动应用,在新文件夹中创建项目:
abp new Acme.BookStore -t app -u mvc --mobile none --database-provider ef -csfEntity Framework Core,分层架构(Web 和 HTTP API 分离),无移动应用,在新文件夹中创建项目:
abp new Acme.BookStore -u mvc --mobile none --tiered --database-provider ef -csfMongoDB,无移动应用,在新文件夹中创建项目:
abp new Acme.BookStore -t app -u mvc --mobile none --database-provider mongodb -csfMongoDB,分层架构,在新文件夹中创建项目:
abp new Acme.BookStore -u mvc --tiered --database-provider mongodb -csf公共网站,Entity Framework Core,无移动应用,在新文件夹中创建项目:
abp new Acme.BookStore -t app -u mvc --mobile none --database-provider ef -csf --public-website请注意,公共网站仅包含在 PRO 模板中。
无初始配置!,将不生成数据库迁移,不安装客户端脚本,也不运行捆绑
abp new Acme.BookStore -u mvc --skip-migrations --skip-migrator --dont-run-install-libs --dont-run-bundling
Blazor WebAssembly
以下命令用于创建 Blazor WASM 项目:
Entity Framework Core,无移动应用:
abp new Acme.BookStore -t app -u blazor --mobile noneEntity Framework Core,独立身份验证服务器,包含移动应用:
abp new Acme.BookStore -u blazor --separate-auth-serverMongoDB,无移动应用,在新文件夹中创建项目:
abp new Acme.BookStore -u blazor --database-provider mongodb --mobile none -csf客户端库未自动加载!,不会从 (NPM) 安装 libs 文件夹
abp new Acme.BookStore -u blazor --dont-run-install-libs
Blazor Server
以下命令用于创建 Blazor 项目:
Entity Framework Core,无移动应用:
abp new Acme.BookStore -t app -u blazor-server --mobile noneEntity Framework Core,独立身份验证服务器,独立的 API 主机,包含移动应用:
abp new Acme.BookStore -u blazor-server --tieredMongoDB,无移动应用,在新文件夹中创建项目:
abp new Acme.BookStore -u blazor --database-provider mongodb --mobile none -csf跳过包的捆绑,
abp new Acme.BookStore -u blazor --dont-run-bundling
无 UI
在默认的应用模板中,总是有一个前端项目。在此选项中,没有前端项目。它有一个 HttpApi.Host 项目来为您的 HTTP WebAPI 提供服务。如果您想创建一个 WebAPI 服务,这很合适。
Entity Framework Core,独立的身份验证服务器,在新文件夹中创建项目:
abp new Acme.BookStore -u no-ui --separate-auth-server -csfMongoDB,无移动应用:
abp new Acme.BookStore -u no-ui --mobile none --database-provider mongodb
控制台应用程序
这是一个集成了 ABP 模块架构的基本 .NET 控制台应用程序模板。要创建控制台应用程序,请使用以下命令:
该项目由以下文件组成:
Acme.BookStore.csproj、appsettings.json、BookStoreHostedService.cs、BookStoreModule.cs、HelloWorldService.cs和Program.cs。abp new Acme.BookStore -t console -csf
模块
模块是可供您的主项目使用的可重用于应用程序。如果您正在构建微服务解决方案,使用 ABP 模块是最佳实践。由于模块不是最终应用程序,每个模块可以包含不同的前端 UI 项目和数据库提供程序。
可用的前端:
MVC、Angular、Blazor。可用的数据库提供程序:Entity Framework Core、MongoDB。abp new-module Acme.IssueManagement与上述相同,但包含 MVC 和 Angular 项目。
abp new-module Acme.IssueManagement -u mvc,angular
选择数据库管理系统
默认的数据库管理系统 (DBMS) 是 Entity Framework Core / SQL Server。您可以通过传递 --database-management-system 参数来选择 DBMS。可接受的值为 SqlServer、MySQL、SQLite、Oracle、Oracle-Devart、PostgreSQL。默认值为 SqlServer。
Angular UI,PostgreSQL 数据库,在新文件夹中创建项目:
abp new Acme.BookStore -u angular --database-management-system PostgreSQL -csf
使用本地 ABP 引用
默认情况下,在 ABP 解决方案中,ABP 库是从 NuGet 引用的。有时您需要将 ABP 库本地引用到您的解决方案。这对于调试框架本身很有用。您的本地 ABP 根目录必须包含 Volo.Abp.sln 文件。您可以将以下目录的内容复制到您的文件系统:https://github.com/abpframework/abp/tree/dev/framework
- MVC UI,Entity Framework Core,ABP 库是本地项目引用:
本地路径必须是 ABP 存储库的根目录。
如果 C:\source\abp\framework\Volo.Abp.sln 是您的框架解决方案路径,那么您必须将 C:\source\abp 写入 --abp-path 参数。
```bash
abp new Acme.BookStore --local-framework-ref --abp-path C:\source\abp
```
输出:
如下所示,ABP 库是本地项目引用。
<ItemGroup>
<ProjectReference Include="C:\source\abp\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<ProjectReference Include="C:\source\abp\framework\src\Volo.Abp.AspNetCore.Serilog\Volo.Abp.AspNetCore.Serilog.csproj" />
<ProjectReference Include="C:\source\abp\framework\src\Volo.Abp.AspNetCore.Authentication.JwtBearer\Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj" />
<ProjectReference Include="..\Acme.BookStore.Application\Acme.BookStore.Application.csproj" />
<ProjectReference Include="..\Acme.BookStore.HttpApi\Acme.BookStore.HttpApi.csproj" />
<ProjectReference Include="..\Acme.BookStore.EntityFrameworkCore\Acme.BookStore.EntityFrameworkCore.csproj" />
</ItemGroup>
使用现有配置
如果您想通过编程方式创建解决方案,可以使用现有配置,而不是逐个向 CLI 传递参数。ABP Studio 会在本地 (UserProfile)\.abp\studio\solution-creation-history.json 文件中保存解决方案创建历史记录,您可以在其中找到在您的计算机上创建的解决方案的配置。
使用解决方案 ID
在解决方案的 *.abpsln 文件中,有一个 ID 字段,您可以使用它来重新创建解决方案。为此,使用 -shi 或 --solution-history-id 参数将 id 传递给 cli。
abp new -shi dbb1afa9-190e-419a-842d-2780bb1bad1f
abp new -shi dbb1afa9-190e-419a-842d-2780bb1bad1f -o D:\test\Acme.BookStore
使用 JSON 配置文件
您也可以使用配置文件来创建解决方案。您需要使用 -rcp 或 ready-config-path 参数来实现。
abp new -rcp MyTests\config.json
abp new -rcp D:\MyTests\config.json
abp new -rcp D:\MyTests\config.json -o D:\test\Acme.BookStore
要准备配置文件,您可以检查上面提到的 solution-creation-history.json 文件中的记录。一个示例配置文件如下所示:
{
"solutionName": {
"fullName": "Acme.BookStore",
"companyName": "Acme",
"projectName": "BookStore"
},
"pro": true,
"useOpenSourceTemplate": false,
"booksSample": false,
"databaseProvider": "ef",
"createInitialMigration": true,
"runDbMigrator": true,
"uiFramework": "angular",
"theme": "leptonx",
"themeStyle": "system",
"mobileFramework": "none",
"databaseManagementSystem": "sqlserver",
"databaseManagementSystemBuilderExtensionMethod": "UseSqlServer",
"connectionString": "Server=(LocalDb)\\\\MSSQLLocalDB;Database=BookStore;Trusted_Connection=True;TrustServerCertificate=true",
"mauiBlazorApplicationIdGuid": "d3499a09-f3d4-4bb7-9d58-4c7b1caee331",
"tiered": false,
"publicWebsite": false,
"cmskit": false,
"openIddictAdmin": true,
"languageManagement": true,
"textTemplateManagement": true,
"multiTenancy": true,
"auditLogging": false,
"gdpr": true,
"chat": false,
"fileManagement": false,
"socialLogins": true,
"includeTests": true,
"distributedEventBus": "none",
"publicRedis": false,
"separateTenantSchema": false,
"progressiveWebApp": false,
"runProgressiveWebAppSupport": false,
"runInstallLibs": false,
"runBundling": false,
"kubernetesConfiguration": true,
"templateName": "app"
}
抠丁客


