0

0

WIX工具集是什么 如何用XML来创建Windows安装程序

煙雲

煙雲

发布时间:2026-01-30 10:54:10

|

675人浏览过

|

来源于php中文网

原创

WiX工具集是微软官方认可的基于XML的开源Windows安装包构建系统,直接调用MSI API,生成标准msi或exe安装包,支持企业级部署能力。

wix工具集是什么 如何用xml来创建windows安装程序

WIX工具集(WiX Toolset)不是“XML安装程序生成器”的简化版,它是微软官方认可的、基于 XML 的开源 Windows 安装包构建系统,底层直接调用 Windows Installer(MSI)API。它不提供可视化拖拽界面,也不生成 .exe 自解压包——你写的 XML 最终编译成标准 msiexe(含引导程序),能通过 msiexec 部署、支持静默安装、策略组管理、修复/卸载事务等企业级能力。

WiX 项目结构和核心文件怎么组织

一个最小可构建的 WiX 项目至少包含三个部分:Product.wxs(主安装逻辑)、WixUI.wxs(可选 UI)、project.wixproj(MSBuild 项目文件)。WiX 不依赖 Visual Studio,但 VS 插件能提升编辑体验;命令行构建靠 candle.exe(编译 .wxs → .wixobj)和 light.exe(链接 .wixobj → .msi)。

  • Product.wxs 必须有 根节点,内嵌 ,且 Id 必须是合法 GUID(可用 guidgen.exe 或在线生成器)
  • 所有文件资源必须显式声明在 内,每个 必须有唯一 Id 和一个 Guid(用于 MSI 组件注册,不能为 * 除非开发阶段)
  • 层级需完整:从 ProgramFilesFolder 开始,逐级定义子目录,路径名区分大小写(如 MyAppmyapp

wixstdba 和 Burn 引导程序怎么启用自定义 UI

Burn 是 WiX 的引导程序框架,用于打包多个 MSI、EXE 或处理运行时依赖(如 .NET 运行时)。默认 WixStandardBootstrapperApplication(wixstdba)只提供基础进度条;要加 logo、按钮文字或跳过 EULA,必须自定义 BootstrapperApplicationRef 并重写 Bundle.wxs 中的

Skybox AI
Skybox AI

一键将涂鸦转为360°无缝环境贴图的AI神器

下载
  • 修改安装包标题:在 节点设 DisplayName 属性,值会显示在控制面板“已安装程序”列表中
  • 添加 .NET 检查:用 + WixNetFxExtension 提供的 NETFRAMEWORK45 变量,失败时自动下载安装
  • 静默安装参数:生成的 setup.exe 支持 /quiet(无 UI)、/norestart(不重启)、/log install.log(记录详细日志)

常见编译错误和对应 XML 修复方式

WiX 编译失败多数源于 XML 结构非法或 MSI 语义冲突,不是语法错误。例如 candle.exe 报 “The Component element contains an unhandled extension element 'File'” —— 实际是漏写了 包裹 ;而 light.exe 报 “ICE03: Invalid language ID” 则是 Product/@Language 值不是十进制整数(如误填 "1033" 带引号,应为 1033)。

  • error CNDL0005: The Product/@Version attribute's value, '1.0', is not a valid version stringVersion 必须为 x.y.z 格式(如 1.0.0),不能含字母或前导零
  • error LGHT0217: Error while signing → 若启用了 -sval 参数但未配置证书,删掉该参数或用 signtool.exe 单独签名生成的 .msi
  • 安装后找不到文件:检查 Source 属性是否为相对路径(相对于 .wxs 文件所在目录),且文件真实存在;绝对路径会被拒绝


  
    
    
    
      
    
  

  
    
      
        
      
    
  

  
    
      
        
      
    
  
WiX 的 XML 看似自由,实则每处属性都绑定 MSI 数据库表字段。最易被忽略的是 KeyPath:它决定组件是否“激活”,漏设会导致卸载时残留文件;而 Guid="*" 在生产环境必须替换为固定值,否则每次构建都会被视为新组件,引发升级失败。

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
string转int
string转int

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

463

2023.08.02

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

97

2023.09.25

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

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

1903

2024.04.01

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

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

2092

2024.08.01

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

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

1077

2024.11.28

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

228

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

297

2023.10.25

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

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

788

2023.07.26

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

8

2026.01.30

热门下载

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

精品课程

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

共46课时 | 3.1万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 9.9万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.2万人学习

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

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