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

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

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

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



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

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

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

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

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

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

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



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

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

时间: 2024-11-01 22:24:51

Advanced Installer 安装前卸载旧版本的办法的相关文章

Inno Setup 安装前卸载原程序

Inno Setup 安装前卸载原程序 分类: Install Setup 2013-02-02 15:53 2315人阅读 评论(0) 收藏 举报 很多時候我們需要在安裝文件之前卸載原有的程序而不是覆蓋安裝,本文的code就是實現了這樣的功能. 實現原理是:從注冊表'UninstallString'項中讀取卸載信息,用Exec進行靜默卸載. 下面code中APP_NAME為你的程序名,可以去注冊表中確認. 1 function InitializeSetup(): boolean; 2 var

[转帖]InfluxDB 1.2.0安装及新旧版本的注意事项

InfluxDB 1.2.0安装及新旧版本的注意事项 http://haibing.org/245?zwlqby=npztq3 挺好的文章 很好的解决了 上一个文档里面 关于 web admin 的问题 更多好文章见作者电子书集<Linux运维入门指南:生产运维需要掌握的技能> 随着大数据的爆发,系统数量也是直线上升,监控系统,收集系统运行状态成了保障业务正常运行中的重要一个环节. 针对这种产生频率快.带时间标签.测点多.信息量大的数据,时序数据库(Time Series Database,简

ubuntu下JDK安装(更新旧版本JAVA)

1.sudo apt-get install openjdk-8-jre openjdk-8-jdk 2.默认会安装在 路径为 /usr/lib/jvm/java-7-openjdk-amd64 下面 3.配置环境变量 vim ~/.bashrc export JAVA_HOME = /usr/lib/jvm/openjdk-8-jdk-i386  (我的是32位的) source ~/.bashrc 4.测试java版本是否正确配置 java -version $JAVA_HOME/bin/j

gitlab升级-(一)安装一台旧版本

gitlab升级 首先第一步:先安装一台与现在gitlab版本一致的机器,备份原版本gitlab数据,备份完在新服务器恢复,恢复完在进行升级,以防升级失败 再来一遍如何安装gitlab吧 我这里现在的gitlab版本 8.14.6 如下 下载rpm我安装的是社区版,社区版和企业版的区别请看官网介绍: https://www.gitlab.com.cn/installation/ce-or-ee/?distro=centos-7 我这里有以前版本的rpm就不进行下载,直接放到服务器,然后安装 安装

C#winform程序安装时自动卸载新版本覆盖旧版本

vs2005为winform程序做的安装包.在以有程序旧版本的机子上用新版本的安装包安装软件时提示  “以经安装该产品的另一个版本.无法继续安装此版本........” 在安装部署项目中设“RemovePreviousVersion”为true后也不行.  还是提示要卸载旧版本才能安装新版本..如何设置在安装新版本时复盖掉旧版本?? 1.确认两个版本的RemovePreviousVersion设置都是true的 2.确认两个版本有不同的ProductCode和相同的UpgradeCode 3.确

Docker-CE-CentOS安装&amp;更新&amp;卸载

准备工作 系统准备 要求centos-7以上版本(包含7) 开启centos-extras 在线安装方式要求 卸载旧版本 卸载旧版本docker yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine (可选操

(转)使用 Advanced Installer 打包 一键安装Web应用程序

使用 Advanced Installer 打包 一键安装Web应用程序 安装预览: 资源下载: 示例安装包 操作流程: 1.新建Asp.net Application. 2.设置应用程序名称和公司名称. 3.选择安装包分布类型.默认即可. 4.指定该项目和程序包的路径. 5.新建应用程序文件.点击新建文件和新建文件夹即可选择站点下的文件或文件夹. 6.配置应用程序运行时环境. 7.配置程序包的.Net Framework环境. 8.定义Web应用程序类型. 9.设置主机.端口等参数. 10.选

Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法

原文:Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法 前几个月使用Advanced Installer 打包了一堆安装包,其中有使用默认主题的,也有根据UI设计更改过一些功能的,当时在Windows7下测试没有任何问题,就直接上线给用户使用了. 这两天在禅道上发现指派了一个BUG过来,描述的内容是在Windows10下安装包会出现重启后再次自动运行的问题,见鬼了,没有写过自启动注册表啊,马上打开工程查看,发现了一个很奇怪的现象,下面来介绍. 1.当

如何成功安装旧版本火狐,成功安装firebug和firepath插件

很久不用火狐了,为了练习selenium定位浏览器等操作,下载了火狐浏览器,新版火狐已经没有firebug和firepath等插件,无法使用,只有安装老版本的火狐:*****安装好之后立刻设置不让他自动更新 1.历史版本火狐:历史个版本火狐浏览器下载url:http://ftp.mozilla.org/pub/firefox/releases/ 2.我下载的是47.0版本: 3.安装旧版本之前需要先卸载现有版本的火狐浏览器,试了几次电脑不能同时安装两个版本的火狐(可能我没找对方法) 4.火狐安装