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

生成MSI安装包时出现WIX0001错误:句柄无效

解决Wix创建MSI时"句柄无效"的Cabinet压缩错误

错误详情

wix.exe : error WIX0001: WixToolset.Core.Native.WixNativeException: wixnative.exe执行失败,错误代码:-2147467259 - 句柄无效。输出:
---> System.ComponentModel.Win32Exception (6): 句柄无效。
---内部异常堆栈跟踪结束---
at WixToolset.Core.Native.WixNativeExe.Run() in D:\a\wix\wix\src\wix\WixToolset.Core.Native\WixNativeExe.cs:line 81
at WixToolset.Core.Native.Cabinet.Compress(IEnumerable`1 files, CompressionLevel compressionLevel, Int32 maxSize, Int32 maxThresh) in D:\a\wix\wix\src\wix\WixToolset.Core.Native\Cabinet.cs:line 60
at WixToolset.Core.WindowsInstaller.Bind.CabinetBuilder.CreateCabinet(CabinetWorkItem cabinetWorkItem) in D:\a\wix\wix\src\wix\WixToolset.Core.WindowsInstaller\Bind\CabinetBuilder.cs:line 192
at WixToolset.Core.WindowsInstaller.Bind.CabinetBuilder.ProcessWorkItems() in D:\a\wix\wix\src\wix\WixToolset.Core.WindowsInstaller.Bind\CabinetBuilder.cs:line 123

排查与解决步骤

  • 检查待压缩文件状态
    确保所有要打包的文件未被其他进程锁定(如编辑器、杀毒软件),当前用户对文件有读取权限。可尝试关闭占用程序,或复制文件到新目录后重新打包。

  • 调整Cabinet压缩配置
    过高的压缩等级可能触发句柄异常,尝试降低压缩级别。修改Wix项目中Media元素的CompressionLevel属性:

    <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" CompressionLevel="medium" />
    

    若设置了MaxCabSize,尝试增大该值或暂时移除限制,避免分卷压缩引发的句柄问题。

  • 升级Wix Toolset版本
    该错误可能是特定版本的bug,升级到最新稳定版。旧版wixnative.exe在处理部分压缩场景时可能存在句柄泄漏问题,新版本通常会修复这类原生组件异常。

  • 清理项目缓存
    删除项目的obj、bin目录及临时生成的Cabinet文件,重新构建。损坏的缓存文件可能导致压缩时出现句柄错误。

  • 提升构建权限
    以管理员身份运行构建工具(如Visual Studio、msbuild命令),避免UAC权限限制。同时检查系统临时目录(%TEMP%)是否有足够空间,且当前用户具备读写权限——Wix压缩过程会依赖临时目录存储中间文件。

  • 排除特殊文件
    若打包文件包含超大文件(超过2GB)、非常规格式或损坏文件,尝试逐个移除后重新构建,定位是否为特定文件导致的问题。超大文件可单独处理或拆分后打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:37:45