Files
EveryPublish/client/ui
..

EveryPublish Windows 客户端(WinUI 3 壳)

结构

  • 本目录:WinUI 3(C#/.NET 8)外壳——托盘、配对引导、挑战窗口、状态页、设置, spawn 并看门狗守护 agent-core.exe(../core,Go)。
  • 壳与 core 的桥:data/local.json(core 启动写随机端口 + token),壳经 127.0.0.1 HTTP 控制。

Windows 构建(需 Windows 10/11 + .NET 8 SDK)

  1. 安装 .NET 8 SDK(https://dotnet.microsoft.com/download/dotnet/8.0)与 Go 1.23+。
  2. 首次构建前还原依赖:dotnet restore EveryPublish.Client.csproj(需网络)。
  3. 一键打包:powershell -ExecutionPolicy Bypass -File Packaging\build-installer.ps1。 产出 ../dist/EveryPublish-Client-0.2.0-win-x64.zip。
  4. 解压运行 EveryPublish.Client.exe(无需安装 .NET 运行时与 WindowsAppSDK,已自包含)。

手动验证清单(D9 验收)

  1. 首次启动:窗口显示「未配对」;托盘图标出现。
  2. 网页端生成配对码 → 客户端「配对」页输入 → 配对成功 → 状态页「在线」。
  3. 网页端新建账号并绑定 → 客户端「挑战」页出现挑战 → 提交验证码 → 网页端账号变「已绑定」。
  4. 网页端新建任务 → 审核通过 → 客户端状态页保持在线 → 网页端任务变「发布成功」。
  5. 关闭窗口 → 最小化到托盘(进程仍运行);托盘「退出」才真正退出。
  6. 设置页开启「开机自启」→ 注销/重启后客户端自动运行。

已知注意

  • H.NotifyIcon.WinUI 锁定 2.0.131(NuGet 已验证存在):托盘左/右键打开主窗口(2.x 无 WPF 式 ContextMenu),退出入口在「设置 → 退出客户端」。
  • 构建前可先跑 Packaging\precheck.ps1 自检 .NET 8 SDK 与 Go 工具链。
  • 若出现 WinUI 编译错误,多为 XAML 控件 API 细节,按报错微调即可(工程结构已就位)。