最近发布的 Windows Installer XML (WiX) 工具包 v3.7 包含了对 MSBuild 的完整支持,并使开发者能够通过 Bootstrapper 应用程序来实现程序的自更新(self-update)。此版本还包含了引用计数(reference-counting)功能,借助该功能,Burn 引擎能够对引用的 MSI 和 MSP 包进行自动计数。
WiX 使开发人员能够从 XML 源代码创建 Windows 安装包。该工具包能够编译源代码,我们可以组合使用这些工具来创建各种可执行文件,比如:
隶属于 Outercurve 基金会的 WiX 包括一个命令行构建工具,能够与任何自动构建系统结合使用。此外,MSBuild 不仅支持命令行模式,也可与 Visual Studio 2012 和 Team Build 集成。
除了创建 Windows 安装包,WiX 工具包还包含了一些扩展来进行功能扩充,如建立 IIS 站点、创建 SQL Server 数据库和设置 Windows 防火墙例外等。在 WiX SDK 原生和托管库的帮助下,开发人员可以编写 C#或 C++ 代码与 Windows Installer 进行交互。
Wix 中包含了 Votive ,这是一个 Visual Studio 插件,使你能够通过 Visual Studio 集成开发环境(IDE)创建并构建 WiX 安装项目,还支持.wxs 源文件的语法高亮和智能感知。它还在Visual Studio 中添加了一个WiX 安装项目类型,可以通过文件(File)下的菜单使用。
WiX 的内部结构包含以下组件:
- Candle——编译器
- Light——链接器
- Lit ——库工具
- Dark——反编译器
- Tallow/Heat——根据目录树生成 WiX 文件列表代码的工具
- Pyro——创建补丁文件(msp)的工具
- Burn——引导程序(Bootstrapper)
几个开发人员在大量地使用了 WiX 工具集后,已经提交了一些 Bug 。
Steve 报告说:
安装了 WiX 3.7 之后,无法打开已有的 Visual Studio 2008 WiX 项目。
Brian 评论道:
在 Windows 7 64 位平台中安装 Wix37.exe 存在问题。用户界面仅仅显示“错误,请重试”的消息。我不确定这是什么问题。我的系统安装有 Wix 3.6、VS2010 和 VS2012。
Greg Duncan 说:
虽然更新不算很大,但个人认为这样更好。我更喜欢这样快节奏的更新。我有一种强烈的预感,过段时间我还会来这里看看 WiX。
参考
- WiX 手册
- WiX 教程
- 图书《WiX 3.6:Windows Installer XML 开发者指南》
- How to: 安装 Windows Installer XML (WiX) 工具
- 为 ASP.NET Web 应用程序创建 WIX Installer
- 使用 MSBuild 和 WindowsInstaller XML 执行自动发布
- Windows Installer XML 初学者指南
查看英文原文: WiX v3.7 - MSBuild, Self Update and Reference Counting
感谢臧秀涛对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论