Files
sharp-basic/scripts/README.md
T

200 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 许可证。