- 新增 Obfuscar 混淆发布脚本、发布测试与产物隐私检查 - 调整 VS Code 发布任务和宿主发布配置,统一走混淆流程 - 为 debug 页面内嵌静态接口说明,并补充对应集成测试 - 更新 README 与设计计划文档,记录跨平台发布约束
2.8 KiB
Flyshot 跨平台混淆发布 Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 为全部 Flyshot.* 自研程序集建立依赖环境 Obfuscar 的跨平台框架依赖混淆发布流程。
Architecture: 使用一个 PowerShell 入口编排 dotnet publish、绝对路径 Obfuscar XML 生成、混淆执行、产物完整性检查和映射文件隔离。发布脚本不修改项目运行时代码,也不引入混淆器包依赖。
Tech Stack: PowerShell 7、.NET 8 SDK、Obfuscar.GlobalTool 2.2.50、ASP.NET Core 自包含发布。
Task 1: 发布脚本契约测试
Files:
-
Create:
tests/Publishing/Publish-Obfuscated.Tests.ps1 -
编写测试夹具,创建包含八个
Flyshot.*.dll和一个第三方 DLL 的临时发布目录。 -
调用尚不存在的配置生成入口,断言测试因缺少
scripts/Publish-Obfuscated.ps1而失败。 -
保留测试入口,使后续实现可以在
-GenerateConfigOnly模式下验证配置内容而不执行真实发布。
Task 2: 双平台混淆发布脚本
Files:
-
Create:
scripts/Publish-Obfuscated.ps1 -
定义带完整注释的参数、静态程序集清单和辅助函数。
-
检查 PowerShell、
dotnet与obfuscar.console环境命令。 -
使用
dotnet publish -c Release -r <rid> --self-contained true -p:PublishSingleFile=false生成原始产物。 -
为八个
Flyshot.*.dll生成使用绝对路径的 Obfuscar XML。 -
执行 Obfuscar,并检查每个输入模块都有混淆输出。
-
将混淆 DLL/PDB 替换进发布目录,并将
Mapping.txt隔离到outputs/obfuscation-maps/<rid>/。 -
不传 RID,生成一份 Windows/Linux 共用的 .NET 8 框架依赖发布包。
Task 3: 发布任务与文档
Files:
-
Modify:
.vscode/tasks.json -
Modify:
README.md -
将 VS Code
publish任务改为调用 PowerShell 混淆发布脚本。 -
在 README 发布章节记录环境安装、发布命令、输出目录和保护边界。
Task 4: 验证
Files:
-
Modify:
docs/superpowers/plans/2026-06-22-cross-platform-obfuscation.md -
运行脚本契约测试并确认通过。
-
运行
dotnet test FlyshotReplacement.sln -c Release -v minimal。 -
运行
dotnet build FlyshotReplacement.sln -c Release --no-restore -v minimal。 -
环境安装 Obfuscar 后执行
pwsh -File scripts/Publish-Obfuscated.ps1。 -
启动 Windows 混淆产物并请求
/healthz。 -
检查 Linux 混淆产物结构;存在 WSL 时启动并请求
/healthz。 -
检查
git diff,确认没有第三方程序集或映射文件进入部署包。