原文:Advanced Installer 安装前卸载旧版本的办法

Advanced Installer这个工具百度出来的资料太少了。

在我们平常打包的工作中,经常遇到的一个问题是,如何能在安装新版本的时候友好的提示/卸载之前的旧版本,而不是粗暴的直接让用户自行去卸载呢?今天就这个问题给出下面一个具体的解决办法,话不多说,直接开始:


方案一:安装时自动卸载旧版本

第一步:找到并记录下上一个版本的Upgrade Code,此Code在上一个工程中的如下位置:



第二步:在新版本中的Upgrade Code要保证和前一版本的此Code一致。

第三步:在Custom Action中增加UninstallPreviousVersions操作。



第四步:保存,打包,就可以了。

讲下原理:UninstallPreviousVersions操作是通过 UpgradeCode来查找旧版本的,所以只要确保新旧版本的UpgradeCode一致(product Code千万不能一致)就可以在安装新版本的时候自动卸载旧版本了。

此方案好处就是简单,没有任何过多的操作,用户也不需要操作就能自动卸载。缺点就是不太友好,用户不能选择是否需要卸载。


方案二:增加友好的用户选择界面,确定后再进行卸载。

这里前面几步和方案一相同,唯一不同的就是在UninstallPreviousVersions操作中,我们加上自己的condition,由此来判断是否需要执行卸载操作。在condition中可以设置自己的对话框变量来保证用户点击确定后才执行,比较简单,就是对方案一的补充,就不细说了。

最新文章

  1. 机器学习实战笔记(Python实现)-07-分类性能度量指标
  2. JSON数据源提供多值参数的实现
  3. TJ/T808 终端通讯协议设计与实现(码农本色)
  4. JSONP浅析
  5. scp
  6. web通过ActiveX打印
  7. Windows-009-Win7 操作系统安装图文详解
  8. 2016年12月3日 星期六 --出埃及记 Exodus 20:24
  9. CUBRID学习笔记 42 Hierarchical QuerySQL层级查询
  10. Web前端开发笔试&面试_04
  11. .NET DLL 保护措施详解(三)最终效果
  12. 新建Android工程没有自动生成R.JAVA,应该先升级下ADT
  13. UVA11069 - A Graph Problem(DP)
  14. VS窗体选择BackGroupImage属性报错:已添加具有相同键的项
  15. flask 扩展之 -- flask-sqlalchemy
  16. 利用MAT玩转JVM内存分析(一)
  17. LODOP打印当前日期时间的方法
  18. 微软推 Azure 机器学习工具:Algorithm Cheat Sheet
  19. 开发环境中Docker的使用
  20. #20 Python文件

热门文章

  1. 2015年工作中遇到的问题:71-80,Tomcat-Redis-浮点数-HTTPS
  2. 【t042】炮击坦克
  3. Web开发的编码解决中文乱码
  4. Java 出现内存溢出的定位以及解决方案
  5. kindeditor 4 上传下载文件
  6. 到底有多少种智能指针(smart pointer)
  7. 【16.67%】【codeforces 667C】Reberland Linguistics
  8. C# 从零开始写 SharpDx 应用 控制台创建 Sharpdx 窗口
  9. Linux命令list
  10. sklearn 下距离的度量 —— sklearn.metrics