From 4c2575317e7cd3e9ca6c7190ea2a6c4cdd96ee64 Mon Sep 17 00:00:00 2001 From: kennethcheng Date: Sun, 6 Sep 2026 20:30:38 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=9C=A8=20AGENTS.md=20=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=20WindowsAppSDK=202.4.0=20self-contained=20=E6=89=93?= =?UTF-8?q?=E5=8C=85=20bug=20+=20=E4=BF=AE=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 首次 build 后启动会报 AppNotificationManager.Register() 0x8007007E 找不到 Microsoft.WindowsAppRuntime.Insights.Resource.dll。 原因是 WindowsAppSDK 2.4.0 的 NuGet 包没把 Insights Resource DLL 打进 build 目录,只在系统级 WindowsAppRuntime 安装里才有。 提供两种修法: - dev:从 C:\Program Files\WSL\wslsettings\(或任何已装 WindowsAppSDK 的程序)拷贝 5 个 DLL 到 build 目录 - prod:目标机器装 WindowsAppRuntime system-wide(winget install Microsoft.WindowsAppRuntime.2),或者 publish 后手工补这 5 个 DLL 已在 Gitea 的 build 验证里实测有效。 --- AGENTS.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index db7f3de..4ed231c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -66,8 +66,10 @@ V1 暂不做(避免范围蔓延):多 Gotify Server、消息过滤、GUI 完整 ``` - 反向代理(Nginx / NPM)必须透传 WebSocket Upgrade 头,详见方案文档第 14 节 - 任意代码改动后必须执行: `dotnet restore && dotnet build -c Release`,并在目标 Windows 10/11 上跑一次端到端 - -## Gotify protocol 约束 +- **已知 WindowsAppSDK 2.4.0 self-contained 打包 bug**:`dotnet build` 出来的 `bin\...\win-x64\` 缺 `Microsoft.WindowsAppRuntime.Insights.Resource.dll`,首次启动 `AppNotificationManager.Register()` 会报 `0x8007007E 找不到指定的模块`。 + - 修法 A(dev):从已装 WindowsAppSDK 的程序(如 `C:\Program Files\WSL\wslsettings\`)拷贝 5 个 DLL 到 build 目录: + - `Microsoft.WindowsAppRuntime.Bootstrap.dll`、`Microsoft.WindowsAppRuntime.Bootstrap.Net.dll`、`Microsoft.WindowsAppRuntime.dll`、`Microsoft.WindowsAppRuntime.Insights.Resource.dll`、`Microsoft.WindowsAppRuntime.pri` + - 修法 B(prod):`dotnet publish` 后同样需要补这 5 个文件,或者目标机器装 WindowsAppRuntime system-wide(`winget install Microsoft.WindowsAppRuntime.2`) - `/stream` 是 WebSocket 端点,`/message?limit=&since=` 是历史补偿端点,二者都只接受 `Client Token` - 消息去重锚点 = `state.LastMessageId`,只处理 `Id > LastMessageId` 的消息,启动时用 `since=LastMessageId` 拉增量