项目

ABP CLI - 新建解决方案示例命令

abp new 命令基于 ABP 模板创建一个 ABP 解决方案或其他工件。ABP CLI 提供了多个参数来创建新的 ABP 解决方案。本文档将向您展示一些创建新解决方案的示例命令。所有项目名称均为 Acme.BookStore。当前可用的移动项目是 React NativeMAUI 移动应用(它们*适用于 Team 或更高级别的许可证)。可用的数据库提供程序是 Entity Framework CoreMongoDB。所有命令均以 abp new 开头。

Angular

以下命令用于创建 Angular UI 项目:

  • Entity Framework Core,无移动应用,在新文件夹中创建项目:

    abp new Acme.BookStore -u angular --mobile none --database-provider ef -csf
    
  • Entity Framework Core,默认应用模板,独立身份验证服务器,在新文件夹中创建项目:

    abp new Acme.BookStore -t app -u angular -m none --separate-auth-server --database-provider ef -csf
    
  • Entity 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.BookStore
    
  • MongoDB,默认应用模板,无移动应用,独立身份验证服务器,在新文件夹中创建项目:

    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 -csf
    
  • Entity Framework Core分层架构Web 和 HTTP API 分离),无移动应用,在新文件夹中创建项目:

    abp new Acme.BookStore -u mvc --mobile none --tiered --database-provider ef -csf
    
  • MongoDB,无移动应用,在新文件夹中创建项目:

    abp new Acme.BookStore -t app -u mvc --mobile none --database-provider mongodb -csf
    
  • MongoDB分层架构,在新文件夹中创建项目:

    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 none
    
  • Entity Framework Core独立身份验证服务器,包含移动应用:

    abp new Acme.BookStore -u blazor --separate-auth-server
    
  • MongoDB,无移动应用,在新文件夹中创建项目:

    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 none
    
  • Entity Framework Core独立身份验证服务器独立的 API 主机,包含移动应用:

    abp new Acme.BookStore -u blazor-server --tiered
    
  • MongoDB,无移动应用,在新文件夹中创建项目:

    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 -csf
    
  • MongoDB,无移动应用:

    abp new Acme.BookStore -u no-ui --mobile none --database-provider mongodb
    

控制台应用程序

这是一个集成了 ABP 模块架构的基本 .NET 控制台应用程序模板。要创建控制台应用程序,请使用以下命令:

  • 该项目由以下文件组成:Acme.BookStore.csprojappsettings.jsonBookStoreHostedService.csBookStoreModule.csHelloWorldService.csProgram.cs

    abp new Acme.BookStore -t console -csf
    

模块

模块是可供您的主项目使用的可重用于应用程序。如果您正在构建微服务解决方案,使用 ABP 模块是最佳实践。由于模块不是最终应用程序,每个模块可以包含不同的前端 UI 项目和数据库提供程序。

  • 可用的前端:MVCAngularBlazor。可用的数据库提供程序:Entity Framework CoreMongoDB

    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。可接受的值为 SqlServerMySQLSQLiteOracleOracle-DevartPostgreSQL。默认值为 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"
      }

另请参阅

在本文档中