You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hw-web/Admin.NET-v2/HW_PORTAL_本机环境配置与启动教程.md

424 lines
9.6 KiB
Markdown

# HW Portal 本机环境配置与启动教程
## 1. 文档目的
- 适用场景:当前电脑没有任何 C#/.NET 环境,也没有 Visual Studio。
- 目标:让你可以在当前仓库 `C:\D\WORK\NewP\Admin.NET-v2` 上完成本地环境准备、后端启动、前端启动、`hw-portal` 插件识别,以及数据库和其他配置修改。
- 说明:本仓库当前后端为 `net8.0;net10.0` 双目标,前端实际依赖以 `Web/package.json` 为准,当前为 `Node >= 18`、`pnpm 10.28.2`、`vite ^7.3.1`、`vue ^3.5.28`。
## 2. 必需环境
### 2.1 后端必需
1. 安装 `.NET SDK 10.x`
- 这是当前项目的主目标框架之一,后续新增的 `hw-portal` 插件也已按 `net8.0;net10.0` 配置。
- 推荐直接安装最新稳定版 `.NET 10 SDK`
2. 建议同时安装 `.NET SDK 8.x`
- 虽然通常高版本 SDK 可以处理低版本目标框架,但本项目是双目标,装上 8.x 能减少还原/构建时的目标框架兼容风险。
3. 安装 `ASP.NET Core Runtime`
- 若已安装 SDK通常已包含开发所需运行时。
4. 数据库
- 当前默认配置是 `Sqlite`,不需要额外安装数据库服务。
- 如果后续切换到 `MySql`、`PostgreSQL`、`SqlServer`,再安装对应数据库即可。
### 2.2 前端必需
1. 安装 `Node.js 18+`
2. 安装 `pnpm`
- 推荐:`npm install -g pnpm`
3. 建议安装 `Git`
### 2.3 编辑器建议
- 不装 Visual Studio 也可以开发。
- 推荐最小组合:
- `VS Code`
- `C# Dev Kit`
- `C#`
- `Vue - Official`
- `TypeScript Vue Plugin (Volar)`
- `ESLint`
### 2.4 PowerShell
- 当前仓库部分前端脚本使用 `pwsh`,建议安装 `PowerShell 7`
- 如果只跑最基本的前后端启动Windows 自带 PowerShell 也基本够用。
## 3. Windows 新机器安装顺序
### 3.1 推荐顺序
1. 安装 `Git`
2. 安装 `Node.js 18+`
3. 执行 `npm install -g pnpm`
4. 安装 `.NET SDK 10.x`
5. 建议再安装 `.NET SDK 8.x`
6. 安装 `VS Code`
7. 安装 VS Code 扩展:`C# Dev Kit`、`C#`、`Vue - Official`
### 3.2 安装后自检命令
在 PowerShell 里执行:
```powershell
git --version
node -v
pnpm -v
dotnet --list-sdks
dotnet --info
```
至少应满足:
- `node` 版本 `>= 18`
- `pnpm` 可用
- `dotnet --list-sdks` 能看到 `8.x` 和/或 `10.x`
## 4. 项目启动教程
## 4.1 打开仓库
仓库根目录:
```text
C:\D\WORK\NewP\Admin.NET-v2
```
## 4.2 后端启动
后端解决方案目录:
```text
C:\D\WORK\NewP\Admin.NET-v2\Admin.NET
```
首次执行:
```powershell
cd C:\D\WORK\NewP\Admin.NET-v2
dotnet restore .\Admin.NET\Admin.NET.sln
dotnet build .\Admin.NET\Admin.NET.sln -c Debug
```
启动后端:
```powershell
dotnet run --project .\Admin.NET\Admin.NET.Web.Entry
```
默认监听地址来自:
```text
Admin.NET\Admin.NET.Application\Configuration\App.json
```
当前默认端口:
```json
"Urls": "http://*:5005"
```
也就是本机通常访问:
```text
http://localhost:5005
```
## 4.3 前端启动
前端目录:
```text
C:\D\WORK\NewP\Admin.NET-v2\Web
```
首次执行:
```powershell
cd C:\D\WORK\NewP\Admin.NET-v2
pnpm install --dir Web
```
启动前端:
```powershell
pnpm --dir Web dev
```
当前前端开发端口来自:
```text
Web\.env
```
默认是:
```text
VITE_PORT = 8888
```
所以前端开发地址通常是:
```text
http://localhost:8888
```
## 4.4 前后端联调
当前前端开发环境接口地址来自:
```text
Web\.env.development
```
默认值:
```text
VITE_API_URL = http://localhost:5005
```
因此标准联调顺序是:
1. 先启动后端 `5005`
2. 再启动前端 `8888`
3. 浏览器访问 `http://localhost:8888`
## 4.5 默认账号
前端开发环境默认登录信息来自:
```text
Web\.env.development
```
当前值:
```text
VITE_DEFAULT_USER = superAdmin.NET
VITE_DEFAULT_USER_PASSWORD = Admin.NET++010101
```
## 5. 数据库配置修改教程
## 5.1 当前默认数据库
当前后端默认数据库配置文件:
```text
Admin.NET\Admin.NET.Application\Configuration\Database.json
```
当前默认是:
- `DbType = Sqlite`
- `ConnectionString = DataSource=./Admin.NET.db`
这意味着:
- 默认直接在后端运行目录生成/使用 SQLite 文件
- 本机第一次启动时,如果初始化开关打开,会自动建库建表和种子
## 5.2 改成 MySQL / PostgreSQL / SQL Server
你主要只改这里:
```text
Admin.NET\Admin.NET.Application\Configuration\Database.json
```
重点字段:
- `DbConnection.ConnectionConfigs[0].DbType`
- `DbConnection.ConnectionConfigs[0].ConnectionString`
- `DbSettings`
- `TableSettings`
- `SeedSettings`
示例思路:
- MySQL`DbType` 改成 `MySql`
- PostgreSQL`DbType` 改成 `PostgreSQL`
- SQL Server`DbType` 改成 `SqlServer`
首次迁移 `hw-portal` 数据时建议:
- 先确认连接串可用
- 首次导入已有业务库时,谨慎检查 `EnableInitDb`、`EnableInitTable`、`EnableInitSeed`
- 如果数据库表结构已经存在且不希望框架自动处理,建议酌情关闭初始化开关
## 5.3 与 `hw-portal` 相关的数据库说明
- `hw-portal` 当前是插件模块
- 其 SQL 原文保存在:
```text
Admin.NET\Plugins\Admin.NET.Plugin.HwPortal\Sql
```
- 这些 XML 是从 `ruoyi-portal` 原样拷贝过来的,当前迁移策略是:
- 表结构不变
- SQL 不变
- C# 侧通过 XML 执行器读取并执行这些 SQL
## 6. 其余配置文件地址
## 6.1 后端核心启动与宿主
- 后端入口:
- `Admin.NET\Admin.NET.Web.Entry\Program.cs`
- 后端核心装配:
- `Admin.NET\Admin.NET.Web.Core\Startup.cs`
## 6.2 后端主要配置目录
统一配置目录:
```text
Admin.NET\Admin.NET.Application\Configuration
```
常用文件如下:
- 应用地址、端口、动态 API、CORS、异常
- `Admin.NET\Admin.NET.Application\Configuration\App.json`
- 数据库:
- `Admin.NET\Admin.NET.Application\Configuration\Database.json`
- 缓存:
- `Admin.NET\Admin.NET.Application\Configuration\Cache.json`
- JWT
- `Admin.NET\Admin.NET.Application\Configuration\JWT.json`
- 限流:
- `Admin.NET\Admin.NET.Application\Configuration\Limit.json`
- 日志:
- `Admin.NET\Admin.NET.Application\Configuration\Logging.json`
- 事件总线:
- `Admin.NET\Admin.NET.Application\Configuration\EventBus.json`
- Swagger
- `Admin.NET\Admin.NET.Application\Configuration\Swagger.json`
- 上传:
- `Admin.NET\Admin.NET.Application\Configuration\Upload.json`
- OAuth
- `Admin.NET\Admin.NET.Application\Configuration\OAuth.json`
- 邮件:
- `Admin.NET\Admin.NET.Application\Configuration\Email.json`
- 短信:
- `Admin.NET\Admin.NET.Application\Configuration\SMS.json`
- 验证码:
- `Admin.NET\Admin.NET.Application\Configuration\Captcha.json`
- 微信:
- `Admin.NET\Admin.NET.Application\Configuration\Wechat.json`
- 支付宝:
- `Admin.NET\Admin.NET.Application\Configuration\Alipay.json`
- ElasticSearch
- `Admin.NET\Admin.NET.Application\Configuration\ElasticSearch.json`
## 6.3 前端配置入口
- 前端依赖与脚本:
- `Web\package.json`
- Vite 配置:
- `Web\vite.config.ts`
- 通用前端环境变量:
- `Web\.env`
- 开发环境变量:
- `Web\.env.development`
- 生产环境变量:
- `Web\.env.production`
当前最常改的前端配置项:
- `VITE_PORT`
- `VITE_API_URL`
- `VITE_PUBLIC_PATH`
- `VITE_SM_PUBLIC_KEY`
## 6.4 `hw-portal` 模块接入文件
- 插件项目文件:
- `Admin.NET\Plugins\Admin.NET.Plugin.HwPortal\Admin.NET.Plugin.HwPortal.csproj`
- 插件启动注册:
- `Admin.NET\Plugins\Admin.NET.Plugin.HwPortal\Startup.cs`
- 解决方案挂载:
- `Admin.NET\Admin.NET.sln`
- 应用层引用插件:
- `Admin.NET\Admin.NET.Application\Admin.NET.Application.csproj`
## 7. `hw-portal` 插件模块结构
当前模块根目录:
```text
Admin.NET\Plugins\Admin.NET.Plugin.HwPortal
```
结构说明:
- `Common`
- 放统一返回、基础实体、控制器基类、上下文辅助
- `Controllers`
- 放与原 Spring Controller 对应的 ASP.NET Controller
- `Dto`
- 放请求/返回 DTO、树结构 DTO、搜索 DTO
- `Entity`
-`hw_*` 实体模型
- `Infrastructure`
- 放 MyBatis XML 渲染器与执行器
- `Service`
- 放业务服务
- `Service\Analytics`
- 放官网访问统计服务
- `Service\Search`
- 放搜索服务、搜索索引重建接口、文本提取器
- `Sql`
- 放从 `ruoyi-portal` 原样复制过来的 MyBatis XML
## 8. 推荐启动顺序
## 8.1 第一次启动
1. 安装 `.NET SDK`
2. 安装 `Node.js``pnpm`
3. 执行后端 `restore`
4. 执行后端 `build`
5. 执行后端 `run`
6. 执行前端 `pnpm install`
7. 执行前端 `pnpm --dir Web dev`
## 8.2 命令清单
```powershell
cd C:\D\WORK\NewP\Admin.NET-v2
dotnet restore .\Admin.NET\Admin.NET.sln
dotnet build .\Admin.NET\Admin.NET.sln -c Debug
dotnet run --project .\Admin.NET\Admin.NET.Web.Entry
```
另开一个终端:
```powershell
cd C:\D\WORK\NewP\Admin.NET-v2
pnpm install --dir Web
pnpm --dir Web dev
```
## 9. 当前已知注意事项
1. 你这台机器当前没有 .NET 环境,因此现在还不能直接运行后端命令。
2. 本仓库当前最省事的本地数据库是 `SQLite`,第一次跑通建议先不要切换到外部数据库。
3. `hw-portal` 目前已经接成插件模块,但后续仍建议在装好 SDK 后做一次完整编译和接口联调。
4. 若后续你要改端口,后端改 `App.json`,前端改 `.env` / `.env.development`
## 10. 你下一步最小操作建议
1. 先安装 `Node.js 18+`
2. 安装 `pnpm`
3. 安装 `.NET SDK 10.x`
4. 建议补装 `.NET SDK 8.x`
5. 用 VS Code 打开仓库
6. 先跑后端,再跑前端
7. 能跑通后,再决定是否切换数据库
最自律帅气聪明的臧辰浩