You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fedora下Win11虚拟机运行light.exe出现LGHT0306 CAB错误求助

问题:Wix light.exe生成MSI时CAB文件终态处理失败

在Fedora Linux上运行两台配置完全一致的Windows 11 Pro虚拟机(代码库、工具集、Windows版本等环境完全相同),其中一台运行light.exe 3.11.2可正常生成.msi,另一台生成时触发错误。

已执行的排查操作:

  • 在D盘定义WIX_TEMP(剩余100GB空间)
  • 关闭杀毒软件
  • 给所有用户及构建服务账号分配全权限
  • 使用与正常虚拟机完全相同的构建产物
  • 尝试过Gitlab runner触发的流水线中用cmd、PS、bash运行,也试过高权限运行,问题均存在

报错信息

Updating file information.
Creating cabinet files.
There will be '12' threads used to produce CAB files.
Creating cabinet 'C:\Users\genshi-ci\AppData\Local\Temp\ipfrtun3#media1.cab'.
light.exe : error LGHT0306 : An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element.

可能的解决方向

  • 核查文件计数准确性:虽然报错提示文件数超65535上限,但你提到第一个CAB仅含10个文件,需确认整体打包文件总数是否真的超标,或是否存在符号链接、重复文件被重复统计的情况
  • 强制拆分CAB文件:即使文件数未超标,尝试通过Wix的Media元素手动拆分CAB,规避单CAB处理时的未知异常。示例配置:
    <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
    <Media Id="2" Cabinet="media2.cab" EmbedCab="yes" />
    <!-- 将文件组件分配到不同Media组 -->
    <Feature Id="MainFeature">
      <ComponentGroupRef Id="FileGroup1" Media="1" />
      <ComponentGroupRef Id="FileGroup2" Media="2" />
    </Feature>
    
  • 清理系统临时目录:尽管指定了WIX_TEMP,light.exe可能仍会读写系统临时目录C:\Users\genshi-ci\AppData\Local\Temp,手动清空该目录后重新构建
  • 确认Wix版本完全一致:检查两台虚拟机的light.exe版本(包括补丁细节)是否完全相同,避免细微版本差异引发的问题
  • 禁用多线程构建:报错显示使用12线程生成CAB,尝试添加参数-threads 1强制单线程构建,排查是否为多线程竞争导致的终态处理失败

内容的提问来源于stack exchange,提问作者doncooper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:14:56