Wix 学习
最近在学习Wix toolset (版本3.10),阅读了官网的文档和教程,记录下所学和遇到的一些问题。
Wix
可以通过配置xml格式的文件.wxs
生成.msi
安装包,下载之后将安装目录下的bin
文件夹添加到系统的环境变量下,这样我们就可以在cmd里面使用Wix的命令行了,打包主要用到的命令行是candle.exe
和light.exe
。
candle.exe
将目标*.wxs
转换成light.exe
可识别的*.wixobj
文件。light.exe
则是生成最终*.msi
的工具。
开始使用Wix
可以从教程中下载到一个最简单的例子,这个例子没有引导界面,直接将程序安装好,程序中需要替换GUID
为自定义的ID,打包成.msi
只需要执行
使用Wix自带的引导界面
要使用Wix自带的引导界面需要在light.exe
命令后时添加选项-ext WixUIExtension
同时在.wxs
中添加
Id为Wix Extension
提供的5中引导界面之一
- WixUI_Mondo
- WixUI_FeatureTree
- WixUI_InstallDir
- WixUI_Minimal
- WixUI_Advanced
详情可参考教程
引导界面使用中文
在Product
和Package
标签中有Language
,Codepage
,Languages
和SummaryCodepage
属性,可以根据微软的语言列表查到需要用到的语言所对应的Id,LANGID
对应Language
和Languages
,ASCII code page
对应Codepage
和SummaryCodepage
。
在修改完ID之后,打包时需要添加命令
-cultures:zh-CN
,不同语言对应的code参考这里,否则语言修改将不会生效。
自定义引导界面
Wix只提供了5中固定格式的引导界面,所以有时候我们需要自己订制界面,可以参考教程中提供的这个例子,这是一个增加引导界面流程的例子。
Wix扩展的这些所有界面的配置文件我们可以在安装目录下的\SDK\wixui
中找到对应.wxs
文件。
通过观察这些文件我们可以发现Wix
扩展的这些引导界面是通过如下方法来控制界面跳转的
通过Control
的Next
和Back
属性表示用户操作的时间,来控制对应的事件。
如果我们需要删除协议许可窗口可以将对应组件的引导界面的.wxs
(\SDK\wixui
目录中)复制到自己的当前项目中,并修改<UI Id="你自己的ID">
UI标签的ID为自定义标签,命名为YOU_WXS.wxs
(此处自己命名),然后将LicenseAgreementDlg
对应的部分删除比替换有关LicenseAgreementDlg
窗口的跳转。打包的命令为
详情可以参考教程。