0

0

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

畫卷琴夢

畫卷琴夢

发布时间:2026-01-06 09:52:02

|

699人浏览过

|

来源于php中文网

原创

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 等关键元素。示例结构如下:

奇布塔
奇布塔

基于AI生成技术的一站式有声绘本创作平台

下载



  
    
    
    
      
        
      

    

    
      
    

  

  
    
      
        
      

    

  

  
    
      
    

  

注意点:
– 每个 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。起步稍陡,但结构清晰、可控性强,适合需要精细控制安装行为的场景。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

930

2023.08.02

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1940

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2116

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1150

2024.11.28

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1385

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1159

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

830

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

460

2023.08.02

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

4

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.1万人学习

Excel 教程
Excel 教程

共162课时 | 20万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 2.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号