Skip to content

fix(installer): 修复安装失败、安装过久、安装目录只读权限问题#691

Merged
Yundi339 merged 2 commits into
masterfrom
fix_install
May 28, 2026
Merged

fix(installer): 修复安装失败、安装过久、安装目录只读权限问题#691
Yundi339 merged 2 commits into
masterfrom
fix_install

Conversation

@Yundi339
Copy link
Copy Markdown
Member

No description provided.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

Summary by CodeRabbit

发布说明

  • 新增功能

    • 安装程序现支持针对诊断错误的详细消息提示,改进服务安装失败时的用户体验。
  • 改进

    • 优化 Windows 服务安装流程,简化逻辑并提升可靠性。
    • 调整默认安装组件类型,提供更合理的推荐配置。
    • 改进文件权限设置流程,确保正确清除只读属性。
  • Chores

    • 重组构建脚本配置,新增独立的调试构建命令。
    • 更新依赖项引用。

概览

此 PR 改进了 Sunshine Windows 安装程序的配置、文件权限处理和服务验证,并简化了服务安装脚本的检测和配置流程,同时调整了前端构建脚本组织和更新了 UI 子模块。

变更

Windows 安装程序和服务脚本改进

层 / 文件 概述
安装程序组件默认值和文件权限处理
cmake/packaging/sunshine.iss.in
将 gamepad、vmouse、tools 组件的安装类型从仅完整扩展至推荐和完整模式;改进安装后权限重置,用 icaclsattrib 命令清除只读属性并记录日志。
安装程序服务验证和 GUI 启动权限
cmake/packaging/sunshine.iss.in
服务验证失败时改为先显示诊断对话框再中止,而非抛出异常;为 GUI 完成页操作添加 runascurrentuser 以当前用户权限运行。
服务安装脚本简化和配置改进
src_assets/windows/misc/service/install-service.bat
简化服务检测逻辑,存在时用 sc config 更新;移除遗留服务和删除轮询;改进 binPath 引号转义;支持 delayed-auto 启动类型二次配置;移除 API 就绪等待逻辑。

构建配置更新

层 / 文件 概述
构建脚本重组和子模块更新
package.json, src_assets/common/sunshine-control-panel
build 改为标准 vite build,新增 build-clean 执行清空构建,添加 build:debug 用于调试构建;更新 UI 控制面板子模块提交指向。

代码审查工作量

🎯 3 (中等) | ⏱️ ~25 分钟

可能相关的 PR

  • AlkaidLab/foundation-sunshine#661:两个 PR 都修改了 cmake/packaging/sunshine.iss.in 中的 VerifyServiceInstalled 服务验证逻辑,分别改进错误处理流程和 binPath 验证实现,存在同一检验点的代码关联。
  • AlkaidLab/foundation-sunshine#619:两个 PR 都调整了 cmake/packaging/sunshine.iss.in 中安装程序的用户权限和执行上下文(主 PR 为 postinstall GUI 启动添加 runascurrentuser,而该 PR 移除用户模式权限覆盖以强制管理员提升)。
  • AlkaidLab/foundation-sunshine#617:两个 PR 都修改了 cmake/packaging/sunshine.iss.inVerifyServiceInstalled 和大幅改进了 src_assets/windows/misc/service/install-service.bat 的服务检测和配置验证逻辑,存在服务安装加固的代码级重叠。
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed PR标题清晰地反映了主要变更内容:修复安装失败、安装过程耗时过久、以及安装目录权限问题,这些与raw_summary中的实际改动(脚本简化、权限处理、服务校验优化)相符。
Description check ✅ Passed 作者未提供PR描述。由于这是一个相对宽松的检查且标题已充分说明变更内容,标题本身充当了基本的变更说明。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix_install

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Yundi339 Yundi339 merged commit 5707925 into master May 28, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant