原文:
Advanced Installer 安装前卸载旧版本的办法
Advanced Installer这个工具百度出来的资料太少了。
在我们平常打包的工作中,经常遇到的一个问题是,如何能在安装新版本的时候友好的提示/卸载之前的旧版本,而不是粗暴的直接让用户自行去卸载呢?今天就这个问题给出下面一个具体的解决办法,话不多说,直接开始:
方案一:安装时自动卸载旧版本
第一步:找到并记录下上一个版本的Upgrade Code,此Code在上一个工程中的如下位置:
第二步:在新版本中的Upgrade Code要保证和前一版本的此Code一致。
第三步:在Custom Action中增加UninstallPreviousVersions操作。
第四步:保存,打包,就可以了。
讲下原理:UninstallPreviousVersions操作是通过 UpgradeCode来查找旧版本的,所以只要确保新旧版本的UpgradeCode一致(product Code千万不能一致)就可以在安装新版本的时候自动卸载旧版本了。
此方案好处就是简单,没有任何过多的操作,用户也不需要操作就能自动卸载。缺点就是不太友好,用户不能选择是否需要卸载。
方案二:增加友好的用户选择界面,确定后再进行卸载。
这里前面几步和方案一相同,唯一不同的就是在UninstallPreviousVersions操作中,我们加上自己的condition,由此来判断是否需要执行卸载操作。在condition中可以设置自己的对话框变量来保证用户点击确定后才执行,比较简单,就是对方案一的补充,就不细说了。