InstallShield 2015 Premier的Basic MSI Project如何在卸载时删除残留的文件 (转)
转载:http://blog.csdn.net/zztoll/article/details/54018615#comments
先说下缘由,我在用InstallShield 2015 Premier新建工程时选的Basic MSI Project,且程序在运行中会在安装目录下生成数个文件,但卸载程序时,因为安装目录下有新生成的文件的原因,安装目录及其中的新生成文件会残留,而导致卸载不完全
当然如果你新建工程时是选用的InstallScript MSI Project,可参见此文做法:http://www.hiadmin.org/2010/04/13/installshield-deletedir/
下面说下在Basic MSI Project下的操作步骤
1.进到Behavio and
Logic->InstallScript,在Files上点右键,选New Script
File,会在Files下生成一个Setup.rul,点Setup.rul可看到脚本内容,并看到已生成一个默认的MyFunction的函数,将此函数更名为你自己的函数名称,如DeleteFiles
2.在函数体加入删除文件或文件夹的代码,如
function DeleteFiles (hMSI)
// To Do: Declare local variables.
begin DeleteDir (TARGETDIR^"\config",ALLCONTENTS);
DeleteFile(TARGETDIR^"\my.cfg"); end;
3.进到Custom Actions and Sequences,在Custom Actions上点右键,选New
InstallScript,会在Custom Actions下面生成NewCustomAction1项,
点NewCustomAction1在Function Name中选DeleteFiles,在 Install Exec Sequence中选After
ISUnSelfRegisterFiles
因为是Basic MSI Project工程,无法限定此函数在指定的的UnInstalling事件中执行,所以此函数会在安装时和卸载时执行两次,
所以选择DeleteFiles执行的时机尤为重要,经我验证,选在After ISUnSelfRegisterFiles,不会造成误删文件
也顺便吐槽一下InstallShield
- 选择Basic MSI Project工程却无法在写脚本时关联事件,
-
选择InstallScript Project工程可以关联事件却没了预设的对话框
- 选择 InstallScript MSI
Project工程可关联事件,有预设对话框却无法方便的更改对话框的执行顺序。
如果新建的每个工程都可以实现同样的操作,而新建工程时列出的模板只是替用户配置了可操作的选项,工程建立后可随意增加配置或减少配置,这样不是更方便用户使用吗?
4.补充一点
上面是转载别人的,可我在 Install Exec Sequence中没有找打After ISUnSelfRegisterFiles这个选项,第一次用默认的First Action,发现程序运行过程中生成的文件删除不了;所以选了一个 After UnregisterExtensionInfo 进行测试,发现可以删除运行中生成的文件。在此记录一下。
InstallShield 2015 Premier的Basic MSI Project如何在卸载时删除残留的文件 (转)的更多相关文章
- InstallShield Basic MSI工程常见问题解答[转]
1. 问题描述:采用何种安装模式?实现方法:如果对用户界面等自定义要求不高的话,建议用Basic Msi Project,否则用InstallScript MSI Project. 2. 问题描述 ...
- Basic MSI silent install
Articles and post about silent install for Basic MSI, InstallScript, InstallScript MSI: Silent-mode ...
- InstallShieldPro 2015中Basic MSI工程类型如何调用InstallScript脚本
转载:http://blog.csdn.net/mengzhishen/article/details/8953901 这是一个Basic MSI基础知识. A. 首先在Installation De ...
- NEWS - InstallShield 2015 正式发布
如果您需要为Windows®应用程序创建安装,InstallShield®便是您的最佳解决方案.在为桌面.服务器.云.Web和虚拟环境构建可靠的Windows Installer (MSI)和Inst ...
- InstallShield 2015 Limited Edition 打包教程
InstallShield 2015 Limited Edition 打包教程 右键解决方案,新增项目,选择其他项目类型,安装和部署. InstallShield2015可以免费使用,但需要下载.安装 ...
- 让InstallShield 2015 Limited Edition for Visual Studio 2015生成的setup.exe双击时以管理员权限运行
转载:http://blog.csdn.net/zztoll/article/details/52096700 如题,如何让InstallShield 2015 Limited Edition for ...
- InstallShield 2015 安装 在vs2015
网上很少注册InstallShield 2015 的方法,而且很多以前版本的注册也很笼统,今天我就说说几个细节上的问题.相信大家看了会有帮助,有问题回帖,我会及时跟上, 先说说我遇到的问题 安装: ...
- InstallShield 2015 LimitedEdition VS2012 运行bat文件
转载:http://www.cnblogs.com/fengwenit/p/4271150.html 运行bat文件 网上很多介绍如何运行bat的方法,但我这个是limted 版本,不适用. 1. ...
- 应用InstallShield 2015打包软件打包C#程序
大家都明白,程序员写出的程序与用户直接使用的程序之间还有一个简单的环节,就是打包.今天就简单介绍下用InstallShield 2015打包工具进行程序的打包, 有兴趣的可以看看! 首先前面安装打包工 ...
随机推荐
- struts2基础---->自定义拦截器
这一章,我们开始struts2中拦截器的学习. 自定义拦截器
- java基础---->验证码的使用(一)
验证码是一种区分用户是计算机和人的公共全自动程序.可以防止:恶意破解密码.刷票.论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通 ...
- LeetCode——Search for a Range
Description: Given a sorted array of integers, find the starting and ending position of a given targ ...
- Excel ALT+小键盘的妙用
用法就是摁住ALT不松,然后输入小键盘数字(一定要小键盘),再松开ALT就可以了 α ALT+42689β ALT+42690γ ALT+42691δ ALT+4269 ...
- jQuery --- 利用a标签的download属性下载文件!
最近遇到一个项目,需要有点击下载文件的功能. 由于文件格式是多种的,对于 rar / zip / rtf / doc / xlsx / jpg等. 点击下载有的是直接跳转到后进行下载,但有的是打开进行 ...
- JS复制制定内容到剪贴板怎么做?
可以使用input也可以使用textare文本域来做(而且这个input/textarea不能够被隐藏): <a href="javascript:;" onclick=&q ...
- Dij二级最短路
hdu1245 Saving James Bond Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- apache+tomcat负载均衡3种实现方式
1.首先安装apache,编译完成后,通过IP:端口就行访问,如果返回“it workers”证明Apache启动成功(注意apache的工程路径要正确) 2.下载JK,下载地址为http://mir ...
- 170711、Linux下搭建MySQL集群
一.MySQL集群简介 1.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(r ...
- mysql_commit() COMMIT ROLLBACK 提交 回滚 连接释放
MySQL :: MySQL 8.0 Reference Manual :: 28.7.7.6 mysql_commit() https://dev.mysql.com/doc/refman/8.0/ ...