最近要打包程序在网上找啦几个打包工具最后感觉SetupFactory用着舒服,然后愉快的下载使用,前面都很满意。但是最后安装之后卸载时出现了问题。

执行安装目标下的uninstall.exe后会弹出如下错误
在网上找啦一圈没有发现解决方案。
最后发现生成在开始菜单中卸载快捷方式可以正常卸载

就是画红框的这个是可以正常执行的,其实用这个也是可以满足需求的但是有的人喜欢到安装目录下去寻找卸载程序(比如我),这个时候就会出现问题,所以我只能继续寻找解决方法, 打开文件位置查看这个文件发现该文件是一个uninstall.exe的快捷方式,只是在该快捷方式执行时执行了一个命令
就是这个
G:\HrzVis\uninstall.exe “/U:g:\HrzVis\Uninstall\uninstall.xml”
它其实是将xml文件传给了卸载程序,然后我的思路就是利用setupfactory的脚本功能自己创建快捷方式添加命令就行啦。
所以解决方法就是:

一 、 安装完成脚本执行如下命令为uninstall.exe添加快捷方式将快捷方式放入安装目录即%AppFolder%内


Shell.CreateShortcut(SessionVar.Expand("%AppFolder%"), SessionVar.Expand(“卸载%ProductName%”), SessionVar.Expand("%AppFolder%\uninstall.exe"), SessionVar.Expand("%AppFolder%\uninstall.exe “/U:%AppFolder%\Uninstall\uninstall.xml”"), SessionVar.Expand("%AppFolder%"), SessionVar.Expand("%AppFolder%\uninstall.exe"), 0, SW_SHOWNORMAL, nil, “”);
这里有一个需要注意的,如果你使用SetupFactory自带的脚本工具添加脚本代码时在target这项如果使用右边的选择框选目标文件的话是没有uninstall.exe文件的因为这个时候setupfactory还没有添加该文件,所以这个你要使用代码添加。(放心虽然目标文件不存在但是不会报错的)

二、 这个时候你生成的安装包安装后在安装目录中会有
卸载文件啦,点击卸载吧。不过你会发现卸载完成后这个文件依然会存在,这是因为该文件是你使用脚本自动添加的,所以卸载时卸载目录中没有这个文件的记录。
三、 想要卸载时删除这个文件,有两种方式第一种就是在刚才的脚本代码中将这个文件添加入卸载列表中,第二种是在卸载时删除该文件,因为我的程序在运行时会自动生成日志文件,所以我用的方法是在卸载时直接清空安装目录。


resultF = Folder.DoesExist(SessionVar.Expand("%AppFolder%"));
if (resultF) then
Folder.DeleteTree(SessionVar.Expand("%AppFolder%"),nil);
end
至此问题解决。

Setup Factory 卸载时出现Invalid Start mode :archive filename 无法卸载问题相关推荐

  1. Setup Factory打包时实现第三方DLL文件的注册

    Setup Factory中的如下界面: 红色矩形中的仅仅是用来测试该文件是否是能注册的组件或ocx控件,在安装包安装过程中并不会注册该组件,如需注册,必须按下面步骤进行: 1: 先将需要注册的组件所 ...

  2. 解决ArcGIS 9.3卸载时出现invalid install.log file的方法

    地信君都知道,ArcGIS 9.3 License卸载时常出现"invalid install.log file"的错误提示,而导致卸载失败,如下:

  3. 卸载注册表_系统小技巧:软件卸载不了?这里办法多

    在正常情况下,我们都是通过软件程序组中的卸载图标,或利用控制面板中的"程序和功能"模块来卸载软件的.但有时,我们也会发现利用卸载图标无法卸载软件或者卸载图标干脆丢失找不到了,甚至控 ...

  4. setup Factory 卸载文件报错 invalid uninstall control file:c:\Program

    在工作中,使用setup Factory制作安装包,遇到了invalid uninstall control file:c:\Program问题.引发这个问题的原因是,安装目录有空格,在卸载时,卸载程 ...

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

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

  6. Setup Factory导入注册表时丢失部分语句

    以我注册自定义URL协议遇到的问题为例,也许能为你解决"利用Setup Factory导入注册表不能完全成功"提供一些思路. 问题描述:在注册表中添加自定义URL协议成功,但在网页 ...

  7. Setup Factory卸载前关闭正在运行的程序

    项目场景: 客户端程序安装后自动运行,程序采用Qt控制台方式进行编写的,且不显示控制台窗口.Qt控制台程序暂未找到好的方式添加托盘图标,故只能通过任务管理器强制关闭程序,造成软件退出不方便. 问题描述 ...

  8. Setup Factory用户只选择硬盘根目录时自动创建MyApp文件夹

    曾经在网上看到有网友问: 我用Setup Factory 制作的安装程序,在执行安装的时候会有默认的安装路径,同时用户也可以选择安装路径. 比如默认的安装路径是 C:/Program Files/My ...

  9. Inno Setup Compiler卸载时删除注册表

    卸载时询问是否删除或是保留注册信息,可以使安装程序更加人性化. 界面预览: 在[Code]段添加如下代码: procedure CurUninstallStepChanged(CurUninstall ...

  10. Setup Factory 打包工具部分功能代码解

    Setup Factory 打包工具部分功能代码解 Application.Exit 退出安装程序,并返回一个可选的返回代码.Application.GetInstallLanguage 返回一个包含 ...

最新文章

  1. 参加中国十大IT杰出博客
  2. oracle索引本地打钩,Oracle
  3. js经典试题之数据类型
  4. wxWidgets:wxVariantDataSafeArray类用法
  5. web性能测试分析-工具篇 (转载)
  6. Node.js 常用Mongoose方法
  7. 牛客多校8 - All-Star Game(线段树分治+并查集按秩合并的撤销操作)
  8. c语言内容逆置程序设计,C语言程序设计练习题含程序及参考答案.docx
  9. 马斯克:2024年送人上火星 2050年建城
  10. 微信抢红包算法 java_java 实现仿照微信抢红包算法,实测结果基本和微信吻合,附demo...
  11. tp5命令行基础介绍
  12. socket通信原理简介
  13. 【转载】SQL SERVER 游标
  14. C# 图片验证码简单例子
  15. 新手试炼:C语言实现加密版2-4阶行列式运算!
  16. 支付宝客户端架构解析:iOS 客户端启动性能优化初探
  17. react-native android 识别读取NFC卡信息
  18. 喜欢你,三个星期了!
  19. 2021-09-22 WPF上位机 23-动态图形
  20. Android-S SystemServer

热门文章

  1. 3dmax2018下载3dmax2018下载安装详细教程3dmax2018下载方法
  2. SQLMap常用命令介绍
  3. CSS内联样式的使用,设置字体属性
  4. ps2键盘测试软件,PS2键盘51测试程序1
  5. 边缘检测(Laplace算子,LOG算子)
  6. mysql经纬度与度分秒转换
  7. Blender快捷键、技巧和软件配置
  8. NR - SIB1 PDCCH时域频域位置
  9. 新手怎样利用博客推广
  10. struts2通配符的使用