在Install Actions中的On Startup中加入代码:

--首先卸载系统中已安装的版本
regBasePath = "Software\\"..SessionVar.Expand("%ProductName%");
if (Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, regBasePath)) thenDialog.Message("已存在旧版本", "已存在旧版本,请先卸载旧版本再安装。", MB_OK, MB_ICONEXCLAMATION);Uninstaller = Registry.GetValue(HKEY_LOCAL_MACHINE, regBasePath, "Uninstaller", true);UninstallData = Registry.GetValue(HKEY_LOCAL_MACHINE, regBasePath, "UninstallData", true);Shell.Execute(Uninstaller, "", UninstallData, "");Application.Exit();
end

在Install Actions中的On Post Install中加入代码:

--创建卸载信息,方便下次重安装时卸载
regBasePath = "Software\\"..SessionVar.Expand("%ProductName%");
Registry.CreateKey(HKEY_LOCAL_MACHINE, regBasePath);
Registry.SetValue(HKEY_LOCAL_MACHINE, regBasePath, "Uninstaller", SessionVar.Expand("%AppFolder%\\uninstall.exe"), REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, regBasePath, "UninstallData", SessionVar.Expand("\"/U:%AppFolder%\\Uninstall\\uninstall.xml\""), REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, regBasePath, "Version", SessionVar.Expand("%ProductVer%"), REG_SZ);

在Uninstall Actions中的On Post Uninstall中加入代码:

--删除注册表信息
regBasePath = "Software\\"..SessionVar.Expand("%ProductName%");
if (Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, regBasePath)) thenRegistry.DeleteKey(HKEY_LOCAL_MACHINE, regBasePath);
end

SetupFactory安装前卸载旧版本相关推荐

  1. Setup Factory 9安装前卸载旧版本的方法

    2019独角兽企业重金招聘Python工程师标准>>> Setup factory 9 删除前一版本的方法(即升级的方法): 1.在Actions的On Pre Install中加入 ...

  2. NSIS检测已安装并卸载旧版本和静默安装.msu文件

    NSIS检测已安装并卸载旧版本: Function .onInit    !insertmacro TIP_WHEN_AMD64_INSTALLER_RUNAT_X86    ;安装到所有用户下,cu ...

  3. InnoSetup 安装前卸载旧版程序

    function InitializeSetup:boolean; var ResultStr,ResultCode:string; begin if RegQueryStringValue( HKL ...

  4. Python卸载旧版本并安装新版本

    一.卸载旧版本python: 用快捷键win+R打开cmd,输python,查询当前python版本: 找到对应的安装程序打开: (忽略图片中的版本号,仅作示意) 点"Uninstall&q ...

  5. Docker卸载旧版本并安装特定版本

    卸载旧版本Docker #删除某软件及其安装时自动安装的所有包sudo apt-get autoremove docker docker-ce docker-engine docker.io cont ...

  6. FFmpeg卸载旧版本,安装新版本详细步骤(更新FFmpeg)

    感谢该博主提供的参考: https://blog.csdn.net/qq_36397240/article/details/107745149?utm_medium=distribute.pc_rel ...

  7. Eclipse 版本升级:如何不卸载旧版本 Eclipse 实现在线升级到最新版本?

    文章目录 前言 一.网上没"升级 Eclipse"相关资料吗? 1.1.相关资料很少,我也生气 1.2.升级新版本与在线升级插件傻傻搞不清 二.版本升级准备 2.1.Eclipse ...

  8. python卸载旧版本后依旧残余的问题

    最重要的是在控制面板高级设置的环境变量里面剔除旧版本的路径!剔除了路径一般就不影响后续使用了

  9. 怎么卸载旧版本java_卸载旧的java-jdk安装新版本jdk

    参考:https://www.cnblogs.com/jpfss/p/9677827.html 1\查看版本 java -version 2\ 查询已经安装的jdk rpm -qa | grep ja ...

  10. CentOS中怎样卸载旧版本Git并安装高版本Git

    场景 CentOS中通过编译源码包的方式安装Git: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/116704345 如果想对此 ...

最新文章

  1. JSP页面元素的解析顺序
  2. 【原转】使用获取subview获取子view
  3. linux 下升级apache,CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache...
  4. 学习:Web安装项目创建桌面快捷方式及重写安装类(转)
  5. Linux开放21通信,linux下开启ftp的21号port
  6. webpack系列之-原理篇
  7. 计算机应用教程 卢湘鸿答案,计算机应用教程(Windows 2000环境)习题解答与实验指导...
  8. 这篇文章告诉你PDF转WORD免费软件有哪些?
  9. codevs 5960 信使x
  10. coolnbsp;sensor/image/videonbsp;technbsp;cou…
  11. 怎么在html画出爱心,使用CSS绘制桃心
  12. Hadoop大数据入门
  13. 实时云渲染和本地渲染的区别
  14. ENG Note 1 : 英语写作模板
  15. MinGW和 MinGW-W64的区别
  16. 第一章 行列式 第四五节 对换/行列式的性质
  17. Merkle Patricia Tree (MPT) 树详解
  18. 【操作系统之进程了解】
  19. 项目二 PLC与RobotStudio联合仿真激光切割工作站——仿真模型搭建
  20. linux 跳板机脚本,shell 搭建简易跳板机

热门文章

  1. TextView常用属性
  2. 汉化后的eclipse改成英文版
  3. 目标跟踪 SiamFC++ (Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines)
  4. curl的安装与配置
  5. 土地利用转移矩阵--更新中
  6. 旁路电容0.1uF,是怎么来的?
  7. 为什么需要交叉编译器
  8. 聚类分析 距离 matlab,用MATLAB做聚类分析
  9. 杰奇为什么只能用php5.2,若夏小说新版 杰奇最新2.2专业版内核 WAP端+电脑端+在线充值+关关采集器(送规则)...
  10. C语言-C语言程序的结构