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

WiX Bundle配置:如何正确包含第三方EXE及配套支持文件

解决WiX Bundle中第三方驱动安装程序的目录依赖问题

要让WiX在执行Install_x64.exe前自动创建X64文件夹并解压支持文件,你可以通过<ExePackage>搭配<Payload>元素实现,核心是指定文件的解压目录结构,并确保exe在正确的工作目录执行。

具体实现步骤

  1. 配置主ExePackage元素,指定驱动安装程序的路径,同时设置WorkingDirectory确保exe在自身解压目录运行
  2. 用<Payload>元素逐个添加X64文件夹下的所有支持文件,通过TargetDirectory参数指定解压后放入X64子目录

代码示例

<Bundle Name="YourAppBundle" Version="1.0.0.0" Manufacturer="YourCompany" UpgradeCode="YOUR-GUID-HERE">
  <Chain>
    <!-- 你的主MSI安装包 -->
    <MsiPackage SourceFile="YourApplication.msi" Vital="yes" />

    <!-- 第三方驱动安装包 -->
    <ExePackage
      SourceFile="ThirdPartyDrivers/Install_x64.exe"
      WorkingDirectory="."
      InstallCommand="/silent" <!-- 根据驱动的静默安装参数调整 -->
      Vital="yes"
      Permanent="yes">

      <!-- 打包X64文件夹下的所有支持文件 -->
      <Payload SourceFile="ThirdPartyDrivers/X64/support.dll" TargetDirectory="X64" />
      <Payload SourceFile="ThirdPartyDrivers/X64/config.dat" TargetDirectory="X64" />
      <!-- 其他支持文件依次添加 -->
    </ExePackage>
  </Chain>
</Bundle>

关键说明

  • <Payload>的TargetDirectory="X64"会让WiX在Install_x64.exe的临时解压目录下自动创建X64文件夹,并将对应支持文件放入其中
  • WorkingDirectory="."确保Install_x64.exe在自身解压目录执行,此时该目录下已经存在X64文件夹和所需支持文件,满足程序的路径要求
  • 如果支持文件数量较多,可以使用WiX的heat.exe工具自动扫描目录生成Payload元素,避免手动逐个添加,命令示例:
    heat dir "ThirdPartyDrivers/X64" -dr X64 -cg DriverPayloadGroup -out DriversPayload.wxs
    
    然后在Bundle中引用这个PayloadGroup:
    <ExePackage ...>
      <PayloadGroupRef Id="DriverPayloadGroup" />
    </ExePackage>
    

测试注意事项

  • 安装时可以查看系统临时目录(%TEMP%)下的随机命名文件夹(Bundle的临时解压目录),确认X64文件夹和支持文件是否正确生成
  • 确保Install_x64.exe的安装参数符合第三方驱动的要求,比如静默安装参数是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:02:45