mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 15:44:25 +08:00
Add automatic release version stamping and multiple launcher reliability improvements. The Release workflow now runs scripts/Set-ReleaseVersion.ps1 in build jobs to inject tag-derived Version/AssemblyVersion into project metadata; several .csproj/Directory.Build.props and app.manifest files were changed to use a dev placeholder. Introduced AppVersionProvider (and related runtime metadata) to centralize version resolution and updated DeploymentLocator to use it and to prefer package-root/version.json. Launcher startup flow was hardened: added startup success tracking, public-activation recovery path, improved success/fallback semantics, and related IPC handling. UI/UX fixes include OOBE entrance/exit animation improvements (scaling-aware, concurrent fade+translate) and minor window lifecycle reorder in DesktopShellHost. CommandContext now recognizes restart and key=value args. New DesktopTrayService and .trae spec files (spec, checklist, tasks) document shell/tray hardening work. Miscellaneous logging, comments and housekeeping edits across launcher and shared contracts to support the above.
1.7 KiB
1.7 KiB
版本同步说明
目标
发布版的用户可见版本必须统一指向“应用版本”,不能再出现:
- Launcher UI 显示
1.0.0 - 应用设置页显示
0.8.x version.json、安装包、Release 资产名称各写各的
默认仓库状态
仓库内的静态版本现在故意保留为开发占位值:
Directory.Build.propsLanMountainDesktop/LanMountainDesktop.csprojLanMountainDesktop.Launcher/LanMountainDesktop.Launcher.csprojLanMountainDesktop.Shared.Contracts/LanMountainDesktop.Shared.Contracts.csprojLanMountainDesktop/app.manifestLanMountainDesktop.Launcher/app.manifest
这些值只是提醒“当前不是正式注入构建”,不能代表发布版本。
Release 工作流怎么做
Release 工作流会先从 tag 提取版本:
v0.8.5.2->0.8.5.2- 程序集四段版本 ->
0.8.5.2
随后显式执行:
scripts/Set-ReleaseVersion.ps1
这个步骤会同步更新:
- 主程序
.csproj的Version - Launcher
.csproj的Version - Shared.Contracts
.csproj的Version Directory.Build.props- 主程序
app.manifest - Launcher
app.manifest
之后构建和发布阶段继续通过 MSBuild 属性注入:
VersionAssemblyVersionFileVersionInformationalVersion
因此最终会统一落到:
- Launcher UI 读取到的应用版本
- 应用设置页显示的版本
version.json- 程序集文件版本
- Windows manifest
- 安装包版本
- GitHub Release 资产名称
维护规则
- 日常开发不要手动把仓库默认版本改成正式版本号。
- 正式发版只需要打 tag,版本同步交给工作流。
- 如果新增新的版本承载点,必须同时补到
Set-ReleaseVersion.ps1和 Release 工作流里。