天天看点

Wix Candle Light Dark

最近工作中要用到安装包的制作工具,以前到是用过NSIS,比较简单好用的一款免费安装包制作软件,有很多插件可用,功能也不错。不过这次要使用的是WiX。

Wix 是 Windows Installer XML 的缩写,它是微软提供的一组工具和规范的集合,用来制作MSI格式的安装包。另外值得一提的是,Wix是微软少有的开源软件之一。

Wix包含的工具:

Candle.exe -- 蜡烛,编译器,将 XML (.wxs) 文件编译成 .wixobj 文件。XML 文件中描述 msi 的结构。

Light.exe -- 光,连接程序,将 .wixobj 文件和程序文件等链接成最终的msi文件。

Dark.exe -- 黑暗,反编译程序,将msi包反编译成xml文件。

关于程序名称的猜想:

Candle.exe -- Compiler -- cl.exe in C++

Light.exe -- Linker -- link.exe in C++

Dark.exe -- Decompiler

使用WiX的最好办法是首先用dark.exe反编译一个现成的msi文件,然后在此基础上修改。

WiX教程:

WiX tutorial : http://www.tramontana.co.hu/wix/

WiX 的主页: http://sourceforge.net/projects/wix/

WiX 的作者Rob Mensching(微软)的BLOG (A Must Read):

http://blogs.msdn.com/robmen/default.aspx wix 最新的稳定版是2.0。 3.0还在开发中。我最近的使用感受:

1.通过wix做那种安装的界面是很麻烦的一件事情。还好wix提供了一些标准的界面库,链接一下就好了,不用自己写界面了。

2.对注册表操作,对service的安装启动等等支持的比较好,比较方便。

3.对xml文件的操作,简直是噩梦。如果只是设置属性值还好,但是增加一项就比较恐怖,卸载的时候不会删除,需要在外部写个脚本自己手动删。这个问题似乎在3.0版有些改进,增强了对xml文件的操作,不过我没真正测试过。

4.各个动作执行顺序的调整和各种条件的判定.如果你不是对Windows Installer熟悉,肯定会被这些玩死,特别是当你加入了CustomAction后。

5.调试麻烦,方法就是安装这些msi包时,可以选择输出log文件,基本上就是自己分析这log文件了。

6.比InstallShield便宜,有人告诉我InstallShield要1k刀。