# ABP CLI
ABP CLI (命令行接口) 是一个命令行工具,用来执行基于ABP解决方案的一些常见操作.
## Installation
ABP CLI 是一个 [dotnet global tool ](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools ). 使用命令行窗口安装:
````bash
dotnet tool install -g Volo.Abp.Cli
````
更新最新版本:
````bash
dotnet tool update -g Volo.Abp.Cli
````
## Commands
### new
生成基于ABP[启动模板](Startup-Templates/Index.md)的新解决方案.
基本用法:
````bash
abp new < 解决方案名称> [options]
````
示例:
````bash
abp new Acme.BookStore
````
* Acme.BookStore是解决方案的名称.
* 常见的命名方式类似于 *YourCompany.YourProject* . 不过你可以使用自己喜欢的方式,如 *YourProject* (单级命名空间) 或 *YourCompany.YourProduct.YourModule* (三级命名空间).
#### Options
* `--template` 或者 `-t` : 指定模板. 默认的模板是 `app` ,会生成web项目.可用的模板有:
* `app` (default): [应用程序模板 ](Startup-Templates/Application.md )。 其他选项:
* `--ui` 或者 `-u` : 指定ui框架。默认`mvc`框架。其他选项:
* `mvc` : ASP.NET Core MVC。此模板的其他选项:
* `--tiered` : 创建分层解决方案, Web和Http Api层在物理上是分开的。如果未指定会创建一个分层的解决方案, 此解决方案没有那么复杂,适合大多数场景。
* `angular` : Angular. 这个模板还有一些额外的选项:
* `--separate-identity-server` : Separates the identity server application from the API host application. If not specified, you will have a single endpoint in the server side.
* `--database-provider` 或者 `-d` : 指定数据库提供程序。默认是 `ef` 。其他选项:
* `ef` : Entity Framework Core.
* `mongodb` : MongoDB.
* `module` : [Module template ](Startup-Templates/Module.md ). 其他选项:
* `--no-ui` : 不包含UI。仅创建服务模块( 也称为微服务 - 没有UI) 。
* `--output-folder` 或者 `-o` : 指定输出文件夹,默认是当前目录。
* `--version` 或者 `-v` : 指定ABP和模板的版本。它可以是 [release tag ](https://github.com/abpframework/abp/releases ) 或者 [branch name ](https://github.com/abpframework/abp/branches ). 如果没有指定,则使用最新版本。大多数情况下,您会希望使用最新的版本。
### add-package
通过以下方式将ABP包添加到项目中
* 添加nuget包做为项目的依赖项目.
* 添加 `[DependsOn(...)]` attribute到项目的模块类 (请参阅 [模块开发文档 ](Module-Development-Basics.md )).
> 需要注意的是添加的模块可能需要额外的配置,通常会在包的文档中指出.
基本用法:
````bash
abp add-package < 包名> [options]
````
示例:
````
abp add-package Volo.Abp.MongoDB
````
* 示例中将Volo.Abp.MongoDB包添加到项目中.
#### Options
* `--project` 或 `-p` : 指定项目 (.csproj) 路径. 如果未指定,Cli会尝试在当前目录查找.csproj文件.
### add-module
通过查找模块的所有包,查找解决方案中的相关项目,并将每个包添加到解决方案中的相应项目,从而将[多包应用程序模块](Modules/Index)添加到解决方案中.
> 由于分层,不同的数据库提供程序选项或其他原因,业务模块通常由多个包组成. 使用`add-module`命令可以大大简化向模块添加模块的过程. 但是每个模块可能需要一些其他配置,这些配置通常在相关模块的文档中指出.
基本用法:
````bash
abp add-module < 模块名称> [options]
````
示例:
```bash
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` : 启动项目的项目文件夹的相对路径. 默认值是当前文件夹.
### update
更新所有ABP相关的包可能会很繁琐,框架和模块都有很多包. 此命令自动将解决方案或项目中所有ABP相关的包更新到最新版本.
用法:
````bash
abp update [options]
````
* 如果你的文件夹中有.sln文件,运行命令会将解决方案中所有项目ABP相关的包更新到最新版本.
* 如果你的文件夹中有.csproj文件,运行命令会将项目中所有ABP相关的包更新到最新版本.
#### Options
* `--include-previews` 或 `-p` : 将预览版, 测试版本 和 rc 包 同时更新到最新版本.
### help
CLI的基本用法信息.
用法:
````bash
abp help [命令名]
````
示例:
````bash
abp help # 显示常规帮助.
abp help new # 显示有关 "New" 命令的帮助.
````