200 lines
5.3 KiB
Markdown
200 lines
5.3 KiB
Markdown
# Sharp-Basic 开发脚本工具
|
||
|
||
此目录包含用于开发 Sharp-Basic 项目的实用脚本工具。
|
||
|
||
## 快速开始
|
||
|
||
**推荐方式:** 在项目根目录双击 `dev.bat`,或在 `scripts` 目录双击 `dev.bat`,会显示交互式菜单。
|
||
|
||
## ⚠️ 重要说明
|
||
|
||
1. **清理后必须还原**: `clean.bat` 会删除 bin/obj 目录,删除后**必须运行 restore.bat** 还原 NuGet 包才能构建
|
||
2. **推荐使用 rebuild.bat**: 它会自动完成 清理 → 还原 → 构建 的完整流程
|
||
3. **首次使用**: 建议先运行 `verify.bat` 验证环境配置
|
||
|
||
## 脚本列表
|
||
|
||
### 批处理脚本 (.bat)
|
||
|
||
| 脚本 | 功能 | 说明 |
|
||
|------|------|------|
|
||
| `clean.bat` | 清理构建产物 | 删除所有 bin、obj 目录并运行 dotnet clean |
|
||
| `build.bat` | 构建解决方案 | Release 模式编译整个解决方案 |
|
||
| `rebuild.bat` | 重新构建 | 先清理再构建 |
|
||
| `restore.bat` | 还原 NuGet 包 | 恢复所有依赖包 |
|
||
| `test.bat` | 运行单元测试 | 执行所有测试项目并显示详细日志 |
|
||
| `run-demo.bat` | 运行演示应用 | 启动 Sharp.Demo 应用程序 |
|
||
| `format.bat` | 代码格式化 | 使用 dotnet format 统一代码风格 |
|
||
| `dev.bat` | 开发菜单 | 交互式菜单,集成所有功能 ⭐ **推荐** |
|
||
| `verify.bat` | 验证环境 | 检查开发环境和项目配置是否正常 |
|
||
|
||
### PowerShell 脚本 (.ps1)
|
||
|
||
| 脚本 | 功能 | 说明 |
|
||
|------|------|------|
|
||
| `clean-deep.ps1` | 深度清理 | 删除所有构建产物、缓存、临时文件,可选清理 NuGet 全局缓存 |
|
||
|
||
## 使用方法
|
||
|
||
### 方式一:交互式菜单(推荐)
|
||
|
||
```cmd
|
||
# 在项目根目录
|
||
dev.bat
|
||
|
||
# 或进入 scripts 目录
|
||
cd scripts
|
||
dev.bat
|
||
```
|
||
|
||
菜单选项:
|
||
```
|
||
[1] 清理项目 (clean)
|
||
[2] 还原包 (restore)
|
||
[3] 构建项目 (build)
|
||
[4] 重新构建 (rebuild)
|
||
[5] 运行测试 (test)
|
||
[6] 运行演示应用 (run-demo)
|
||
[7] 格式化代码 (format)
|
||
[8] 深度清理 (PowerShell)
|
||
[0] 退出
|
||
```
|
||
|
||
### 方式二:直接运行单个脚本
|
||
|
||
```cmd
|
||
# 进入 scripts 目录
|
||
cd scripts
|
||
|
||
# 运行具体脚本
|
||
clean.bat # 清理项目
|
||
build.bat # 构建项目
|
||
test.bat # 运行测试
|
||
```
|
||
|
||
### 方式三:PowerShell 深度清理
|
||
|
||
```powershell
|
||
# 在 scripts 目录
|
||
.\clean-deep.ps1
|
||
|
||
# 或从项目根目录
|
||
powershell -ExecutionPolicy Bypass -File scripts\clean-deep.ps1
|
||
```
|
||
|
||
## 常见使用场景
|
||
|
||
### 场景 1:日常开发
|
||
```cmd
|
||
dev.bat
|
||
# 选择 3 (构建) 或 6 (运行演示)
|
||
```
|
||
|
||
### 场景 2:遇到编译问题或缓存问题
|
||
```cmd
|
||
# 推荐方式 - 自动处理所有步骤
|
||
cd scripts
|
||
rebuild.bat # 清理 + 还原 + 重新构建
|
||
|
||
# 手动方式 - 分步执行
|
||
cd scripts
|
||
clean.bat # 清理
|
||
restore.bat # 还原包(必须!)
|
||
build.bat # 构建
|
||
```
|
||
|
||
### 场景 3:代码提交前
|
||
```cmd
|
||
cd scripts
|
||
format.bat # 格式化代码
|
||
test.bat # 确保测试通过
|
||
```
|
||
|
||
### 场景 4:解决缓存问题
|
||
```cmd
|
||
cd scripts
|
||
.\clean-deep.ps1 # PowerShell 深度清理
|
||
```
|
||
|
||
### 场景 5:克隆项目后首次构建
|
||
```cmd
|
||
cd scripts
|
||
restore.bat # 还原 NuGet 包
|
||
build.bat # 构建项目
|
||
```
|
||
|
||
## 脚本功能详解
|
||
|
||
### clean.bat - 清理构建产物
|
||
- 运行 `dotnet clean Sharp.sln`
|
||
- 使用 PowerShell 递归删除所有 `bin` 和 `obj` 目录
|
||
- **重要**: 清理后必须运行 `restore.bat` 还原 NuGet 包
|
||
- 用于解决编译缓存问题
|
||
|
||
### rebuild.bat - 完整重建 ⭐ **推荐用于清理场景**
|
||
- 步骤 1: 清理所有构建产物
|
||
- 步骤 2: 还原 NuGet 包
|
||
- 步骤 3: Release 模式重新构建
|
||
- 自动处理依赖关系,一次性完成所有操作
|
||
|
||
### clean-deep.ps1 - 深度清理
|
||
除了 clean.bat 的功能外,还包括:
|
||
- 删除 `.vs` 目录(Visual Studio 缓存)
|
||
- 删除 `TestResults` 目录
|
||
- 删除临时文件:*.tmp, *.temp, *.log, *.cache, *.bak, *.user
|
||
- 可选清理 NuGet 全局缓存(需确认)
|
||
- 显示删除统计信息
|
||
|
||
### build.bat - 构建解决方案
|
||
- 使用 Release 配置编译
|
||
- 显示构建结果(成功/失败)
|
||
- 返回错误代码
|
||
|
||
### rebuild.bat - 重新构建
|
||
- 先运行 clean.bat
|
||
- 再运行 build.bat
|
||
- 确保干净的构建环境
|
||
|
||
### test.bat - 运行单元测试
|
||
- 使用 Debug 配置
|
||
- 详细日志输出
|
||
- 显示测试结果统计
|
||
|
||
### restore.bat - 还原 NuGet 包
|
||
- 恢复所有项目依赖
|
||
- 适用于克隆项目后首次构建
|
||
|
||
### format.bat - 代码格式化
|
||
- 使用 `dotnet format` 工具
|
||
- 统一代码风格
|
||
- 建议提交前运行
|
||
|
||
### run-demo.bat - 运行演示应用
|
||
- 启动 Sharp.Demo WPF 应用
|
||
- 用于快速测试功能
|
||
|
||
## 注意事项
|
||
|
||
1. **PowerShell 执行策略**:如果无法运行 PowerShell 脚本,需要设置执行策略:
|
||
```powershell
|
||
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||
```
|
||
|
||
2. **路径问题**:所有脚本都会自动切换到正确的目录,无需手动 cd
|
||
|
||
3. **深度清理警告**:`clean-deep.ps1` 会提示是否清理 NuGet 全局缓存,清理后需要重新下载所有包
|
||
|
||
4. **编码问题**:所有脚本使用 UTF-8 编码,支持中文显示
|
||
|
||
## 自定义和扩展
|
||
|
||
如需添加新脚本:
|
||
1. 在 `scripts` 目录创建新的 .bat 或 .ps1 文件
|
||
2. 使用 `cd /d "%~dp0\.."` 切换到项目根目录(批处理)
|
||
3. 使用 `Set-Location (Join-Path $PSScriptRoot "..")` 切换到项目根目录(PowerShell)
|
||
4. 可选:在 `dev.bat` 菜单中添加新选项
|
||
|
||
## 许可证
|
||
|
||
遵循 Sharp-Basic 项目的 GNU AGPLv3 许可证。
|