Skip to content

fix(ci): Win7 打包改用 Burn /layout 解包 vc_redist,不再卡死 - #27

Merged
gaoyu06 merged 6 commits into
masterfrom
fix/win7-runtime-layout
Oct 17, 2026
Merged

gaoyu06 merged 6 commits into
masterfrom
fix/win7-runtime-layout

Conversation

@gaoyu06

@gaoyu06 gaoyu06 commented Oct 17, 2026

Copy link
Copy Markdown
Member

Win7 打包 job 从引入运行库脚本起每次都挂到被取消。

原因:vc_redist.x64.exe 是 WiX Burn 安装包,不支持 /extract。Burn 把它当普通安装执行,因为 runner 上已经装了运行库,返回 1638。脚本随后去掉 /quiet 重试,弹出安装窗口,在 CI 上没人点,就一直等着(日志里 11:18 之后再无输出,直到 12:39 被取消)。

修复:

  • 改用 /layout,把内嵌的 MSI 和 CAB 原样解出,再用 msiexec /a 管理员安装取出 DLL。
  • 删除交互式重试。
  • 所有外部进程超时 5 分钟就杀掉并报错;CI 这一步也设了 15 分钟上限。

…tract

vc_redist.x64.exe is a WiX Burn bundle with no /extract switch. Burn ran a
normal install, returned 1638 because the runner already has the runtime,
and the script then retried without /quiet, which opened an installer
window that nobody answers on CI. The win7 job has hung until cancelled
since the script was introduced.

Use /layout to copy the embedded MSIs, extract them with an administrative
install, drop the interactive retry, and time-limit every external tool
plus the CI step.
…VC143 CRT

windows-latest now carries VS 2026: no classic Microsoft.VC*.CRT folder,
and its system VC++ 14.5x runtime makes vc_redist 14.44 mark every
package obsolete, so /layout copies nothing. Run the win7 job on
windows-2022, take the CRT from VS 2022 first, and only accept the x64
folder (the Redist tree also has x86/arm64/onecore copies with the same
folder name).
The download.windowsupdate.com URL now returns 404, so the update was
silently skipped and the installer check rejected the Win7 bundle. Use
the Download Center file (id=49093), pin its SHA-256, retry, and fail the
build if it cannot be fetched.
The raw-bytes search only saw file names while NSIS left its header
uncompressed; once the payload grew, every name check failed even though
the files were packed. List the installer with 7-Zip (native NSIS
support, present on Windows runners) and fall back to the byte search
when 7-Zip is unavailable.
@gaoyu06
gaoyu06 merged commit 7ffb8df into master Oct 17, 2026
6 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