English | 简体中文
- .NET 8.0 SDK
- 数据库(支持以下任一种):
- MySQL
- SQL Server
- SQLite
- Oracle
- Oracle Devart
- PostgreSQL
- Redis
# 安装微服务模板:lam
dotnet new install LINGYUN.Abp.MicroService.Templates
# 安装单体应用模板:laa
dotnet new install LINGYUN.Abp.AllInOne.Templates
dotnet tool install --global LINGYUN.Abp.Cli
# 简写名称:laa (LINGYUN Abp AllInOne)
labp create YourCompanyName.YourProjectName -pk YourPackageName -t laa -o /path/to/output --dbms MySql --cs "Server=127.0.0.1;Database=Platform-V70;User Id=root;Password=123456;SslMode=None" --no-random-port
参数说明:
-pk
或--package-name
: 包名-t
或--template
: 模板类型,使用laa
表示单体应用模板-o
或--output
: 输出目录--dbms
: 数据库类型,支持 MySql、SqlServer、Sqlite、Oracle、OracleDevart、PostgreSql--cs
: 数据库连接字符串--no-random-port
: 不使用随机端口
创建项目后,进入项目目录:
cd /path/to/output/host/YourPackageName.YourCompanyName.YourProjectName.AIO.Host
dotnet run --launch-profile "YourPackageName.YourCompanyName.YourProjectName.Development"
- .NET 8.0 SDK
- 数据库(支持以下任一种):
- PostgreSQL
- MySQL
- SQL Server(即将支持)
- Redis
- Docker(可选)
- 确保已安装 .NET 8.0 SDK
- 在项目根目录执行以下命令编译整个项目:
./build/build-aspnetcore-release.ps1
- 使用 IDE 打开
LY.MicroService.Applications.Single
解决方案进行调试或发布
支持多种数据库,以下是各种数据库的配置示例:
# 使用Docker启动PostgreSQL
docker run -d --name postgres \
-p 5432:5432 \
-e POSTGRES_PASSWORD=postgres \
-e PGDATA=/var/lib/postgresql/data \
postgres:latest
# 使用Docker启动MySQL
docker run -d --name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=mysql \
mysql:latest
创建数据库:
CREATE DATABASE `Platform-V70`;
# 使用Docker启动SQL Server
docker run -d --name sqlserver \
-p 1433:1433 \
-e "ACCEPT_EULA=Y" \
-e "SA_PASSWORD=yourStrong(!)Password" \
mcr.microsoft.com/mssql/server:latest
需要根据选择的数据库类型修改以下配置文件中的数据库连接字符串:
migrations/LY.MicroService.Applications.Single.DbMigrator/appsettings.json
LY.MicroService.Applications.Single/appsettings.Development.json
数据库连接字符串示例:
PostgreSQL:
{
"ConnectionStrings": {
"Default": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;"
}
}
MySQL:
{
"ConnectionStrings": {
"Default": "Server=127.0.0.1;Database=Platform-V70;User Id=root;Password=123456;SslMode=None"
}
}
SQL Server:
{
"ConnectionStrings": {
"Default": "Server=localhost,1433;Database=Platform-V70;User Id=sa;Password=yourStrong(!)Password;TrustServerCertificate=True"
}
}
# 使用Docker启动Redis
docker run -d --name redis -p 6379:6379 redis:latest
Redis 配置示例:
{
"DistributedLock": {
"IsEnabled": true,
"Redis": {
"Configuration": "127.0.0.1,defaultDatabase=14"
}
},
"Redis": {
"IsEnabled": true,
"Configuration": "127.0.0.1,defaultDatabase=15",
"InstanceName": "LINGYUN.Abp.Application"
},
"Features": {
"Validation": {
"Redis": {
"Configuration": "127.0.0.1,defaultDatabase=13",
"InstanceName": "LINGYUN.Abp.Application"
}
}
}
}
以下配置适用于单体分布式架构:
{
"Minio": {
"WithSSL": false,
"BucketName": "blobs",
"EndPoint": "127.0.0.1:19000",
"AccessKey": "{AccessKey}",
"SecretKey": "{SecretKey}",
"CreateBucketIfNotExists": false
}
}
{
"Elasticsearch": {
"NodeUris": "http://127.0.0.1:9200"
}
}
- 运行数据库迁移脚本:
方案一(推荐):
./aspnet-core/migrations/Migrate.ps1
根据命令行提示生成迁移文件和 sql 脚本,然后执行 sql 脚本来创建数据表
方案二: 以 pgsql 为例
- 修改
LY.MicroService.Applications.Single.DbMigrator/appsettings.PostgreSql.json
中的数据库连接信息 - 进入
LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql
项目 - 运行
dotnet ef database update
- 等待数据迁移完成
-
配置数据初始化:
- 修改
LY.MicroService.Applications.Single.DbMigrator/appsettings.json
中的数据库连接信息 - 确保选择了正确的数据库提供程序
- 修改
-
执行数据迁移:
- 运行
LY.MicroService.Applications.Single.DbMigrator
项目 - 等待数据迁移完成,基础表数据将被初始化
- 运行
- 运行
LY.MicroService.Applications.Single
项目 - 在浏览器中访问 Swagger 接口文档:
{
"App": {
"ShowPii": true,
"SelfUrl": "http://127.0.0.1:30001/",
"CorsOrigins": "http://127.0.0.1:3100,http://127.0.0.1:30001"
}
}
{
"DistributedCache": {
"HideErrors": true,
"KeyPrefix": "LINGYUN.Abp.Application",
"GlobalCacheEntryOptions": {
"SlidingExpiration": "30:00:00",
"AbsoluteExpirationRelativeToNow": "60:00:00"
}
}
}
{
"OpenIddict": {
"Applications": {
"VueAdmin": {
"ClientId": "vue-admin-client",
"RootUrl": "http://127.0.0.1:3100/"
}
},
"Lifetime": {
"AccessToken": "14:00:00",
"IdentityToken": "00:20:00",
"RefreshToken": "14:00:00"
}
}
}
{
"Identity": {
"Password": {
"RequiredLength": 6,
"RequireNonAlphanumeric": false,
"RequireLowercase": false,
"RequireUppercase": false,
"RequireDigit": false
},
"Lockout": {
"AllowedForNewUsers": false,
"LockoutDuration": 5,
"MaxFailedAccessAttempts": 5
},
"SignIn": {
"RequireConfirmedEmail": false,
"RequireConfirmedPhoneNumber": false
}
}
}
{
"FeatureManagement": {
"IsDynamicStoreEnabled": true
},
"SettingManagement": {
"IsDynamicStoreEnabled": true
},
"PermissionManagement": {
"IsDynamicStoreEnabled": true
}
}
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"System": "Warning",
"Microsoft": "Warning"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "Logs/Info-.log",
"rollingInterval": "Day"
}
}
]
}
}
如果遇到问题,请检查:
- 数据库连接字符串是否正确
- 是否选择了正确的数据库提供程序
- Redis 连接是否正常
- 必要的端口是否被占用
- 数据库迁移是否成功完成
- 认证服务器配置是否正确
- CORS 配置是否正确(如果前端访问出现跨域问题)