WiX Toolset怎么用XML创建Windows安装包

5次阅读

WiX Toolset 使用 XML(.wxs 文件)声明式定义安装资源,通过 candle 编译和 light 链接生成 MSI;需配置环境、编写含 Product/Component/File 等元素的 .wxs,指定 GUID、KeyPath 和 MajorUpgrade,并可扩展 UI、快捷方式、注册表等功能。

WiX Toolset 怎么用 XML 创建 Windows 安装包

WiX Toolset 使用 XML(即 .wxs 文件)定义安装逻辑,核心是把文件、注册表 、快捷方式、服务等资源“声明”出来,再通过 工具 链编译链接成 MSI 安装包。它不写代码,而是用结构化 XML 描述“要装什么、装到哪、怎么装”。

1. 安装 WiX 并配置环境

wixtoolset.org 下载最新稳定版(如 v4.x),安装时勾选“Add WiX to PATH”。安装后在命令行运行 candle -helplight -help 验证是否可用。v4 默认使用 wix 命令统一入口,但底层仍依赖 candle(编译器)和 light(链接器)。

2. 编写基础 .wxs 文件

一个最小可运行的 Product.wxs 需包含 Product、Package、Directory、Component、File 等关键元素。示例结构如下:



            
    
      
        
      

    

    
      
    

  
  
    
      
        
      

    

  

  
    
      
    

  

注意点:
– 每个 Component 必须有唯一 GUID(可用 uuidgen 或在线生成器)
FileSource 是相对路径,指向实际文件位置
KeyPath="yes" 标识该文件为组件主键,用于检测安装状态
MajorUpgrade 启用自动升级 / 卸载旧版本能力

3. 编译与链接生成 MSI

在项目目录下执行两步命令:

  • 编译(candle):将 .wxs 转为对象文件 .wixobj
    candle Product.wxs -out Product.wixobj
  • 链接(light):将 .wixobj 打包为 MSI
    light Product.wixobj -ext WixUIExtension -o MyApp.msi

常用扩展(-ext):
WixUIExtension:启用内置 UI(如 WixUI_Minimal
WixUtilExtension:支持自定义操作、服务安装、环境变量
WixFirewallExtension:配置 防火墙 例外

4. 添加常用功能(简明写法)

只需在对应 Fragment 或 Product 内添加对应 XML 片段即可:

  • 开始菜单快捷方式

      
      

    再在 DirectoryRef 中引用 StartMenuFolder(通常放在 ProgramMenuFolder 下)
  • 注册表项

      
        
      

  • 静默安装支持:MSI 天然支持 msiexec /i MyApp.msi /quiet,无需额外配置;如需自定义日志,加 /l*v install.log

WiX 的 XML 不是 编程语言,而是声明式描述——你告诉它“要什么”,它负责生成符合 Windows Installer 规范的 MSI。起步稍陡,但结构清晰、可控性强,适合需要精细控制安装行为的场景。

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-06发表,共计1287字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources