搭建 SeatFlow 开发环境的完整指南,包括前置要求、构建、测试和运行
本页目录
全部文档
开发环境搭建
前置要求
| 工具 | 最低版本 | 说明 |
|---|---|---|
| .NET SDK | 10.0 | 从 dotnet.microsoft.com 下载 |
| Git | — | 版本控制 |
| IDE | — | 推荐 Rider、VS Code + C# 扩展、Visual Studio 2022+ |
支持的操作系统:
- Windows 10+
- macOS 12+(安装包暂未提供,需从源码构建)
- Linux 任意发行版
克隆并构建
# 克隆仓库
git clone <repo-url>
cd SeatFlow
# 还原依赖
dotnet restore
# 构建全部 9 个项目
dotnet build
dotnet build 使用 SeatFlow.slnx 解决方案文件(新版 XML 格式),自动构建所有项目。
运行测试
# 运行所有测试
dotnet test
# 运行单个测试
dotnet test --filter "FullyQualifiedName~TestName"
测试技术栈
| 框架/库 | 用途 |
|---|---|
| xUnit v3 | 测试框架 (Microsoft.Testing.Platform) |
| FluentAssertions | 可读性断言 |
| NSubstitute | 对象模拟 |
测试项目(3 个):
SeatFlow.Core.Tests— Core 层单元测试SeatFlow.Application.Tests— Application 层单元测试SeatFlow.Infrastructure.Tests— Infrastructure 层单元测试
每个测试项目已启用 <ImplicitUsings>enable</ImplicitUsings>(自动引入 System、System.Collections.Generic、System.Linq、System.Threading.Tasks)。项目特定的 global usings 在 Usings.cs(Application.Tests 中为 Using.cs)中定义。
运行桌面应用
dotnet run --project SeatFlow.Presentation.Avalonia
应用启动后将依次执行:
StartupGuard.CheckEnvironment()验证运行时版本和操作系统- 加载语言设置和 XAML 资源
- 初始化 DI 容器,解析 MainWindow 和 ViewModel
- 恢复窗口位置和主题设置
- 进入用户界面
注意:
Avalonia DevTools(avdt) 仅在桌面环境中可用。在无头环境(如 CI)中构建时无需此工具。
IDE 推荐
VS Code
安装以下扩展:
- C# Dev Kit (Microsoft)
- .NET MAUI / Avalonia 扩展(可选)
JetBrains Rider
原生支持 .NET 10 和 Avalonia UI。推荐使用。
Visual Studio 2022+
需要安装 .NET 10 SDK 和 "使用 .NET 的桌面开发" 工作负载。Avalonia 扩展提供 AXAML 设计器和预览功能。
项目配置文件速查
| 文件 | 用途 |
|---|---|
SeatFlow.slnx |
解决方案文件(新版 XML 格式) |
dotnet-tools.json |
dotnet 本地工具清单(含 avdt) |
scripts/publish.sh / publish.ps1 |
多平台发布脚本 |
scripts/clean.sh / clean.ps1 |
递归清理 bin/obj |
scripts/i18n.py |
i18n 资源管理 |
scripts/version.py |
跨文件版本管理 |
常见问题
构建失败:找不到 Resources.Designer.cs
首次克隆仓库后,Resources.Designer.cs 可能不存在。运行以下命令生成:
python3 scripts/i18n.py sync
csproj 中已包含条件编译设置,在 Designer.cs 不存在时会跳过编译,但不影响其他文件的构建。建议尽快运行 i18n.py sync 生成该文件。
无头环境中无法使用 avdt
avaloniaui.developertools 仅在桌面环境中可用。在 CI 或无头服务器上构建/测试时,确保不调用 avdt 相关功能。
.NET 10 SDK 未找到
确保安装了 .NET 10 SDK。验证方式:
dotnet --list-sdks
如果输出中没有 10.x 版本,请从 dotnet.microsoft.com 下载。