项目

旧版 ABP CLI 与新版 ABP CLI 对比

ABP CLI(命令行界面)是一款用于执行基于ABP解决方案或ABP Studio功能的常用操作命令行工具。自 v8.2+版本起 ,旧版/传统 ABP CLI 已被全新的 CLI系统 取代,以适配新的模板系统和 ABP Studio 。新版 CLI 还引入了更强大的特性/命令,例如 kube-connectkube-intercept 命令。

本指南将带您了解此次变更背后的动机、您可能存在的疑问、如何使用旧版CLI及其特性等内容...

变更原因

自v8.2+版本起,ABP引入了全新的模板系统,该系统与ABP Studio完全兼容。

由于 ABP Studio 提供更多更强大的功能(如运行、浏览、监控、追踪和部署应用程序),且新版模板系统采用不同的版本管理结构,我们希望通过扩展现有功能并增加更多适配新模板系统的特性来推出新版CLI。

这一变更使您既可通过运行跨平台的ABP Studio应用程序,也可通过ABP CLI使用新模板系统创建应用程序。同时,借助新版CLI的强大功能,您还能创建自动化流水线。

使用新版ABP CLI

如果您最近安装了 ABP Studio ,可跳过本节,因为ABP Studio会自动卸载旧版CLI并替换为新版CLI。因此,您无需手动切换到新版ABP CLI。

ABP CLI有两种变体:Volo.Abp.Studio.Cli(新版)和Volo.Abp.Cli(旧版)。如果您使用的ABP版本早于v8.2+,那么可能正在使用旧版ABP CLI,可通过执行以下命令轻松切换到新版CLI:

# 卸载旧版CLI
dotnet tool uninstall -g Volo.Abp.Cli

# 安装新版CLI
dotnet tool install -g Volo.Abp.Studio.Cli

注意: 若在卸载旧版CLI前尝试安装新版,将会出现类似**无法为工具'volo.abp.studio.cli'创建shell shim:命令'abp'与来自其他工具的现有命令冲突。**的错误。这是因为新旧CLI二进制文件名均使用相同的abp命令作为执行命令。

如果您从v8.2+版本开始使用ABP,可直接通过以下命令安装新版CLI:

dotnet tool install -g Volo.Abp.Studio.Cli

安装新版CLI后,您将能够使用 文档中 描述的 CLI 命令(通过 abp 命令),或者如果您偏好图形界面,可随时使用 ABP Studio

使用旧版 ABP CLI

如果您拥有旧版ABP解决方案且需使用旧版 ABP CLI,只需在命令末尾添加 --old 命令并执行相关 CLI 命令即可。这样您无需卸载新版 CLI 即可使用旧版 CLI 命令 。

例如,若要创建新的 ABP v8.1.4 解决方案,可使用以下命令:

abp new Acme.BookStore --version 8.1.4 --old

注意: --old 参数 必须位于命令末尾 才能通过旧版 CLI 运行命令,否则将被忽略!

请注意,使用 --old 参数时,将采用 ABP 的最新版本作为 CLI 版本。若需使用特定版本的旧版 ABP CLI ,可通过 install-old-cli 命令安装/更新旧版 CLI,然后照常使用 --old 参数。例如,要使用 v8.0 的旧版 CLI 并创建 v8.0 模板,可依次运行以下命令:

# 安装v8.0版本的旧版ABP CLI
abp install-old-cli --version 8.0.0

# 使用v8.0模板和CLI版本创建新解决方案
abp new Acme.BookStore --version 8.0 --old # 或使用`abp-old new Acme.BookStore`命令

或者,您也可以卸载新版CLI并安装旧版CLI来使用旧版ABP CLI。但借助 --old 参数,您无需如此操作,只需在命令末尾传递 --old 参数即可轻松使用旧版CLI。

建议您使用 --old 参数来调用旧版 ABP CLI。但若遇到任何问题,可随时移除新版 CLI 并像以前一样安装旧版 CLI。

常见问题

本节列出关于新版CLI变更的常见问题及其解答:

  1. 能否使用新版ABP CLI创建旧版ABP项目?

可以。只需在命令末尾添加--old命令并执行即可。例如,若要创建v8.0版本的应用程序,可使用以下命令并传递模板版本:

abp new Acme.BookStore --version 8.0.0 --old
  1. 如何使用特定版本的旧版ABP CLI?

要使用特定版本的旧版ABP CLI,首先需通过新版CLI的install-old-cli命令安装旧版CLI(传递版本号),然后在命令末尾添加--old参数或使用abp-old命令。例如,要使用v7.4的旧版CLI并创建v7.4模板,可依次运行以下命令:

# 安装v7.4版本的旧版ABP CLI
abp install-old-cli --version 7.4.0

# 使用v8.0模板和CLI版本创建新解决方案
abp-old new Acme.BookStore
  1. 新版CLI是否支持旧版CLI的所有命令?

新版CLI扩展了旧版CLI,支持旧版CLI的大部分命令。您可查看 CLI文档 了解所有可用命令。

  1. 若通过 install-old-cli 命令安装了多个旧版CLI版本,会使用哪个版本?

您可在**%UserProfile%\.abp\studio\cli\old**文件夹下查看所有可用的abp-old命令版本。当执行abp-old命令时(通过运行abp-old命令或在命令末尾传递--old参数),可了解将使用哪个旧版CLI版本:

C:\Users\user-name>abp-old
ABP CLI 8.1.4 # -> v8.1.4

用法:

    abp <command> <target> [options]

命令列表:
    //...

您可通过install-old-cli命令更新旧版CLI版本,或安全删除**%UserProfile%\.abp\studio\cli\old**文件夹并安装任何想使用的旧版CLI版本。

  1. 新版ABP CLI带来了哪些新命令?

新版ABP CLI扩展了旧版ABP CLI的现有功能,并引入了新命令。部分如下:

  • kube-connect:连接至Kubernetes环境。(需商业版或更高许可)
  • kube-intercept:拦截运行在Kubernetes环境中的服务。(需商业版或更高许可)
  • list-module-sources:列出远程模块源。
  • ...

请参阅 CLI文档 了解所有可用命令及其用法。

另请参阅

在本文档中