ABP CLI

    ABP CLI 是一个 . 使用命令行窗口安装:

    更新最新版本:

    虽然每个命令可能都有一组选项,但有些全局选项可以与任何命令一起使用:

    • --skip-cli-version-check: 跳过检查最新版本的ABP CLI. 如果没有指定,它会检查最新版本,如果检查到ABP CLI的新版本,会显示一条警告消息.

    这里是所有可用的命令列表:

    • help: 展示ABP CLI的用法帮助信息.
    • new:生成基于ABP的启动模板.
    • update:自动更新的ABP解决方案ABP相关的NuGet和NPM包.
    • add-package: 添加ABP包到项目.
    • add-module: 添加到解决方案.
    • generate-proxy: 生成客户端代理以使用HTTP API端点.
    • remove-proxy: 移除以前生成的客户端代理.
    • switch-to-preview: 切换到ABP框架的最新预览版本。
    • switch-to-nightly: 切换解决方案所有ABP相关包为夜间构建版本.
    • switch-to-stable: 切换解决方案所有ABP相关包为最新的稳定版本.
    • translate: 当源代码控制存储库中有多个JSON[本地化](Localization.md文件时,可简化翻译本地化文件的过程.
    • logout: 在你的计算机注销认证.

    展示ABP CLI的基本用法:

    用法:

    1. abp help [command-name]

    示例:

    1. abp help # Shows a general help.
    2. abp help new # Shows help about the "new" command.

    new

    生成基于ABP的新解决方案.

    用法:

    1. abp new <解决方案名称> [options]

    示例:

    1. abp new Acme.BookStore
    • Acme.BookStore是解决方案的名称.
    • 常见的命名方式类似于 YourCompany.YourProject. 不过你可以使用自己喜欢的方式,如 YourProject (单级命名空间) 或 YourCompany.YourProduct.YourModule (三级命名空间).

    Options

    • --template 或者 -t: 指定模板. 默认的模板是 app,会生成web项目.可用的模板有:
      • app (default): 应用程序模板. 其他选项:
        • --ui 或者 -u: 指定ui框架.默认mvc框架.其他选项:
          • mvc: ASP.NET Core MVC.此模板的其他选项:
            • --tiered: 创建分层解决方案,Web和Http Api层在物理上是分开的.如果未指定会创建一个分层的解决方案,此解决方案没有那么复杂,适合大多数场景.
          • angular: Angular. 这个模板还有一些额外的选项:
            • --separate-identity-server: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点.
          • blazor: Blazor. 这个模板还有一些额外的选项:
            • --separate-identity-server: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点.
          • none: 无UI. 这个模板还有一些额外的选项:
            • --separate-identity-server: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点.
        • --mobile 或者 -m: 指定移动应用程序框架. 如果未指定,则不会创建任何移动应用程序,其他选项:
          • none: 不包含移动应用程序.
          • react-native: React Native.
        • --database-provider 或者 -d: 指定数据库提供程序.默认是 ef.其他选项:
          • ef: Entity Framework Core.
          • mongodb: MongoDB.
      • module: . 其他选项:
        • --no-ui: 不包含UI.仅创建服务模块(也称为微服务 - 没有UI).
      • console: Console template.
    • --output-folder 或者 -o: 指定输出文件夹,默认是当前目录.
    • --version 或者 -v: 指定ABP和模板的版本.它可以是 或者 branch name. 如果没有指定,则使用最新版本.大多数情况下,你会希望使用最新的版本.
    • : 使用最新的预览版本.
    • --template-source 或者 -ts: 指定自定义模板源用于生成项目,可以使用本地源和网络源(例如 D:\local-templathttps://.../my-template-file.zip).
    • --create-solution-folder 或者 -csf: 指定项目是在输出文件夹中的新文件夹中还是直接在输出文件夹中.
    • --connection-string 或者 -cs: 重写所有 appsettings.json 文件的默认连接字符串. 默认连接字符串是 Server=localhost;Database=MyProjectName;Trusted_Connection=True. 默认的数据库提供程序是 SQL Server. 如果你使用EF Core但需要更改DBMS,可以按进行更改(创建解决方案之后).
    • --local-framework-ref --abp-path: 使用对项目的本地引用,而不是替换为NuGet包引用.

    update

    更新所有ABP相关的包可能会很繁琐,框架和模块都有很多包. 此命令自动将解决方案或项目中所有ABP相关的包更新到最新版本.

    用法:

    1. abp update [options]
    • 如果你的文件夹中有.sln文件,运行命令会将解决方案中所有项目ABP相关的包更新到最新版本.
    • 如果你的文件夹中有.csproj文件,运行命令会将项目中所有ABP相关的包更新到最新版本.

    Options

    • --npm: 仅更新NPM包
    • --nuget: 仅更新的NuGet包
    • --solution-path-sp: 指定解决方案路径/目录. 默认使用当前目录
    • --solution-name-sn: 指定解决方案名称. 默认在目录中搜索*.sln文件.
    • --version or -v: 指定用于升级的版本. 如果没有指定,则使用最新版本.

    add-package

    通过以下方式将ABP包添加到项目中

    • 添加nuget包做为项目的依赖项目.
    • 添加 [DependsOn(...)] attribute到项目的模块类 (请参阅 模块开发文档).

    示例:

    1. abp add-package Volo.Abp.MongoDB
    • 示例中将Volo.Abp.MongoDB包添加到项目中.

    Options

    • --project-p: 指定项目 (.csproj) 路径. 如果未指定,Cli会尝试在当前目录查找.csproj文件.

    通过查找模块的所有包,查找解决方案中的相关项目,并将每个包添加到解决方案中的相应项目,从而将添加到解决方案中.

    由于分层,不同的数据库提供程序选项或其他原因,业务模块通常由多个包组成. 使用add-module命令可以大大简化向模块添加模块的过程. 但是每个模块可能需要一些其他配置,这些配置通常在相关模块的文档中指出.

    用法:

    1. abp add-module <模块名称> [options]

    示例:

    1. abp add-module Volo.Blogging
    • 示例中将Volo.Blogging模块添加到解决方案中.

    Options

    • --solution-s: 指定解决方案 (.sln) 路径. 如果未指定,CLI会尝试在当前目录中寻找.sln文件.
    • --skip-db-migrations: 对于EF Core 数据库提供程序,它会自动添加新代码的第一次迁移 (Add-Migration) 并且在需要时更新数据库 (Update-Database). 指定此选项可跳过此操作.
    • -sp--startup-project: 启动项目的项目文件夹的相对路径. 默认值是当前文件夹.
    • --with-source-code: 添加模块的源代码,而不是NuGet/NPM软件包.

    generate-proxy

    为您的HTTP API生成Angular服务代理,简化从客户端使用服务的成本. 在运行此命令之前,你的host必须启动正在运行.

    用法:

    1. abp generate-proxy

    Options

    • --module-m: 指定要为其生成代理的后端模块的名称. 默认值: app.
    • --api-name-a: 在 /src/environments/environment.ts 中定义的API端点名称。. 默认值: default.
    • --source-s: 指定解析根名称空间和API定义URL的Angular项目名称. 默认值: defaultProject
    • -t: 指定放置生成的代码的Angular项目名称. 默认值: defaultProject.
    • --prompt-p: 在命令行提示符下询问选项(未指定的选项).

    remove-proxy

    从Angular应用程序中删除以前生成的代理代码. 在运行此命令之前,你的host必须启动正在运行.

    This can be especially useful when you generate proxies for multiple modules before and need to remove one of them later.

    Usage:

    1. abp remove-proxy

    Options

    • --module-m: 指定要为其生成代理的后端模块的名称. 默认值: app.
    • --api-name-a: 在 /src/environments/environment.ts 中定义的API端点名称。. 默认值: default.
    • --source-s: 指定解析根名称空间和API定义URL的Angular项目名称. 默认值: defaultProject
    • --target-t: 指定放置生成的代码的Angular项目名称. 默认值: defaultProject.
    • --prompt-p: 在命令行提示符下询问选项(未指定的选项).

    参阅 Angular服务代理文档 了解更多.

    switch-to-preview

    你可以使用此命令将项目切换到ABP框架的最新预览版本.

    用法:

    1. abp switch-to-preview [options]

    Options

    • --solution-directory-sd: 指定目录. 解决方案应该在该目录或其子目录中. 如果未指定默认为当前目录.

    用法:

    Options

    --solution-directory-sd: 指定目录. 解决方案应该在该目录或其子目录中. 如果未指定默认为当前目录.

    switch-to-stable

    如果你使用的是ABP框架预览包(包括每晚构建),可以使用此命令切换回最新的稳定版本.

    用法:

    1. abp switch-to-stable [options]

    Options

    --solution-directory-sd: 指定目录. 解决方案应该在该目录或其子目录中. 如果未指定默认为当前目录.

    translate

    源代码控制存储库中有多个JSON文件时,用于简化翻译本地化文件的过程.

    • 该命令将基于参考文化创建一个统一的json文件
    • 它搜索当前目录和所有子目录中的所有本地化”JSON”文件(递归). 然后创建一个包含所有需要翻译的条目的文件(默认情况下名为 “abp-translation.json”).
    • 翻译了此文件中的条目后,你就可以使用 --apply 命令将更改应用于原始本地化文件.

    创建翻译文件

    第一步是创建统一的翻译文件:

    1. abp translate -c <culture> [options]

    示例:

    1. abp translate -c de-DE

    该命令为 de-DE (德语)文化创建了统一的翻译文件.

    附加选项
    • --reference-culture-r: 默认值 en. 指定参考文化.
    • --output-o: 输出文件名. 默认值 abp-translation.json.
    • --all-values-all: 包括所有要翻译的键. 默认情况下,统一翻译文件仅包含目标文化的缺失文本. 如果你可能需要修改之前已经翻译的值,请指定此参数.

    应用更改

    翻译完统一翻译文件中的条目后,你可以使用 --apply 参数将更改应用于原始本地化文件:

    1. abp translate --apply # apply all changes
    2. abp translate -a # shortcut for --apply

    然后,检查源代码控制系统上的更改,以确保它已更改了正确的文件. 如果你翻译了ABP框架资源, 请发送 “Pull Request”. 提前感谢你的贡献.

    附加选项
    • --file-f: 默认值: abp-translation.json. 翻译文件(仅在之前使用过 --output 选项时使用).

    login

    CLI的一些功能需要登录到abp.io平台. 使用你的用户名登录

    1. abp login <username> # Allows you to enter your password hidden
    2. abp login <username> -p <password> # Specify the password as a parameter (password is visible)
    3. abp login <username> --organization <organization> # If you have multiple organizations, you need set your active organization

    当使用-p参数,请注意,因为你的密码是可见的. 它对于CI / CD自动化管道很有用.

    通过从计算机中删除会话令牌来注销.

    1. abp logout