1)、使用命令行窗口安装ABP 官方提供的CLI工具,安装命令如下:
dotnet tool install -g Volo.Abp.Cli
,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120407585-979098573.png)
2)、如果在创建过程中因为网络原因会连接失败的话,可以使用ABP中文网上有与之对应的国内CLI工具,安装命令如下:
dotnet tool install -g Cn.Abp.Cli
安装成功如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120424024-1671839636.png)
3)、如果之前安装过,需要更新,使用命令
dotnet tool update -g Cn.Abp.Cli
如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120439353-636218383.png)
4)、比如在D盘创建一个目录,然后使用命令
cnabp new Baidu.BookStore
来创建一个项目,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120500768-742283978.png)
5)、我们使用VS2017打开项目生成后的目录下的sln解决方案文件,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120523063-678805920.png)
6)、我们打开Web下的appsettings.json文件,默认使用SQL Server数据库作为EFCore操作的数据库类型,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120539145-792311931.png)
7)、我们将项目解决方案下的DbMigrations项目作为启动项目,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120602803-1673007107.png)
8)、依次点击菜单栏中的“工具”->“NuGet包管理器”->“程序包管理器控制台”,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120618817-1293104213.png)
9)、默认项目选择DbMigrations,然后输入命令Update-Database,但是会出现错误,提示缺少Microsoft.EntityFramworkCore.Design包,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120636070-761479881.png)
10)、我们右键项目解决方案,选择“管理解决方案的NuGet程序包”,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120651830-762978412.png)
11)、我们搜索Microsoft.EntityFrameworkCore.Design,然后安装到DbMigrations项目中去,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120703119-1506533652.png)
12)、我们将Web项目下的appsettings.json文件拷贝到DbMigrations项目根目录下,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120729552-1257228135.png)
13)、此时我们在程序包管理器控制台中再次输入
Update-Database
就可以成功迁移数据库,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120741435-475888183.png)
14)、此时我们打开SQL Server 数据库,可以看到自动生成了一个名为BookStore的数据库,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120755729-761337228.png)
15)、编译运行程序,浏览器中打开Web应用的主页界面,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120805388-916377884.png)
16)、点击login,输入用户名admin,密码1q2w3E*即可登录系统,进入主页后可以进行Identity身份验证和Tenant多租户管理操作,如下图所示:
![](https://img2020.cnblogs.com/blog/104109/202007/104109-20200716120813335-326034711.png)
ABP CLI (命令行接口) 是一个命令行工具,用来执行基于ABP解决方案的一些常见操作.
Installation
ABP CLI 是一个 dotnet global tool. 使用命令行窗口安装:
dotnet tool install -g Volo.Abp.Cli
更新最新版本:
dotnet tool update -g Volo.Abp.Cli
Commands
new
生成基于ABP启动模板的新解决方案.
基本用法:
abp new <解决方案名称> [options]
示例:
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应用程序分开. 如果未指定,则服务器端将只有一个端点.
none: 无UI. 这个模板还有一些额外的选项:
--separate-identity-server: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点.
--database-provider 或者 -d: 指定数据库提供程序.默认是 ef.其他选项:
ef: Entity Framework Core.
mongodb: MongoDB.
module: Module template. 其他选项:
--no-ui: 不包含UI.仅创建服务模块(也称为微服务 - 没有UI).
--output-folder 或者 -o: 指定输出文件夹,默认是当前目录.
--version 或者 -v: 指定ABP和模板的版本.它可以是 release tag 或者 branch name. 如果没有指定,则使用最新版本.大多数情况下,您会希望使用最新的版本.
add-package
通过以下方式将ABP包添加到项目中
添加nuget包做为项目的依赖项目.
添加 [DependsOn(...)] attribute到项目的模块类 (请参阅 模块开发文档).
需要注意的是添加的模块可能需要额外的配置,通常会在包的文档中指出.
基本用法:
abp add-package <包名> [options]
示例:
abp add-package Volo.Abp.MongoDB
示例中将Volo.Abp.MongoDB包添加到项目中.
Options
--project 或 -p: 指定项目 (.csproj) 路径. 如果未指定,Cli会尝试在当前目录查找.csproj文件.
add-module
通过查找模块的所有包,查找解决方案中的相关项目,并将每个包添加到解决方案中的相应项目,从而将多包应用程序模块添加到解决方案中.
由于分层,不同的数据库提供程序选项或其他原因,业务模块通常由多个包组成. 使用add-module命令可以大大简化向模块添加模块的过程. 但是每个模块可能需要一些其他配置,这些配置通常在相关模块的文档中指出.
基本用法:
abp add-module <模块名称> [options]
示例:
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相关的包更新到最新版本.
用法:
abp update [options]
如果你的文件夹中有.sln文件,运行命令会将解决方案中所有项目ABP相关的包更新到最新版本.
如果你的文件夹中有.csproj文件,运行命令会将项目中所有ABP相关的包更新到最新版本.
Options
--include-previews 或 -p: 将预览版, 测试版本 和 rc 包 同时更新到最新版本.
help
CLI的基本用法信息.
用法:
abp help [命令名]
示例:
abp help # 显示常规帮助.
abp help new # 显示有关 "New" 命令的帮助.
————————————————
参考链接:
https://blog.csdn.net/S2T11Enterprise/article/details/104010039
https://docs.abp.io/zh-Hans/abp/latest/Startup-Templates/Application
https://docs.abp.io/zh-Hans/abp/latest/Best-Practices/Index