自从VS2012去掉了自家的Windows Installer改用InstallSheild之后,打包程序总是找不到满意的工具,最后投奔Advanced Installer,界面简洁,操作简单,功能也很强大。
使用Advanced Installer打包程序的常规步骤如下:
1 产品信息
![](/advanced_ installer/ai1.png)
如图所示,填写Product Name, Product Version 和 Product Company. 这里需要解释一下Product Version与Product Code、Update Code之间的关系:
Advanced Installer新建安装包项目初期,会自动生成一个Product Code和Update Code,如下图所示:
![](/advanced_ installer/ai4.png)
熟悉windows的朋友一定知道Product Code,使用命令行卸载某一个程序的时候就需要用到Product Code,它是一个产品的唯一标识。按照字面意思理解,Update Code是用来给程序做升级标识的,所以如果要给某一产品安装升级版本,且让升级安装包自动覆盖旧程序,应该保持Product Code不变并重新生成Update Code,但事实上这样操作是错误的。
给程序制作升级安装包正确的方法是:
保持Update Code不变,需要重新生成Product Code,这样安装之后,系统先是卸载旧的程序再安装新的程序,从而达到升级的目的,所以现在应该能够理解为什么要生成新的Product Code了吧?因为牵扯到卸载程序,所以必须要有唯一的Product Code。
我们在Upgrades选项卡中可以到默认状态下是先卸载旧程序,再安装新程序的:
![](/advanced_ installer/ai5.png)