打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何静默安装、静默卸载 之Installshield installscript工程 | 陶雨轩

      最近又在整理Installshield 打包了,有用户要求静默安装和静默卸载。而且还是exe的,msi的好说,msi的格式都是定的,windows 固定的安装包格式,调用相应的参数即可进行静默安装和静默卸载,exe的一直没接触过。在找exe静默安装的这个过程还是有点扯淡啊。。。

      最开始参考了 kevin的博客帖子,给大家贴一下:http://www.cnblogs.com/installshield/archive/2010/11/15/1877668.html

http://www.cnblogs.com/installshield/p/3411963.html

       看kevin博客里面写的意思是:

       1. 打好 exe包之后,先进行录制。

       如何录制?  解答:在这里我觉得有两种方法:a. 就是kevin的那种方法,他说给setup.exe 传入参数 /r。(在这里他的意思应该是Disk Image下面一堆文件中的setup.exe.)    b.另一种方法就是 直接给 生成的package下面的单个exe 传入 /r参数,所以直接在cmd里面调用  单个exe包绝对路径 /r.即可。

        2. 完成上一步之后,会在系统的Windows或WINNT文件夹下产生一个Setup.iss文件(可以通过按照时间排序查找),将此文件复制到Setup.exe同一目录下,改名为Setup.iss.install(静默安装脚本)。(说明:这步直接copy kevin博客里面的)

        3. 接下来录制静默卸载的脚本。 和录制静默安装脚本一样, a. 用kevin的那种方法,用setup.exe /r 接着录制。 或者 b. 用生成的单个exe /r 就行录制。

        4. 在C:\windows\下面生成的setup.iss文件,copy出来,然后修改名字为 setup.iss.uninstall.

        5.至此,静默安装卸载脚本都已经准备ok。

        6.我没有找到单个exe包进行静默安装,只是将 setup.iss.install 放到和单个exe相同目录下,然后进行 “****.exe” /s /f1″****setup.iss.install” /f2″****.setup.log”   (注意:*** 表示文件的绝对路径。而且这里要注意的是 /f1和后面的setup.iss.install绝对路径之间没有空格, /f2后面也是。如果强加了空格,会导致运行失败的。)

       7. 接下来将静默卸载的方法:比较扯淡的是,我看kevin的博客里面说把 静默安装卸载脚本放到Disk1下面就可以直接调用/s 了,妈蛋,弄了n长时间总是不对。这是原文:“如果安装包是压缩成一个Setup.exe,可以将Setup.iss文件插入到Support Files下的Disk1下,然后重新Build,这样安装包可以通过“Setup.exe /s”调用。” 后来发现就算我把脚本放到Disk1下也不会把静默脚本压缩到那个 单个exe包里面。 意思就是我直接调用单个exe包然后进行安装完成后,会在C:\Program Files\InstallShield Installation Information\这个路径下把当时Disk Image里面的文件解压出来。但是两个静默脚本不在里面。怎么办?看看这两个地址吧:http://community.flexerasoftware.com/showthread.php?124299-Silent-Uninstall-Help!&highlight=SupportDir+path

http://flexerasoftware.force.com/articles/en_US/HOWTO/Q104403

http://flexerasoftware.force.com/articles/en_US/HOWTO/Q105066

        里面说,把setup.iss 脚本放到support 下面,然后用installscript脚本将其复制到刚才那个目录:C:\Program Files\InstallShield Installation Information\  这个目录在Installscript中是 DISK1TARGET 这个变量表示。拷进去之后,就想法在卸载的前 调用 DISK1TARGET 路径下的 setup.exe  赋予参数 /s /f1″DISK1TARGET路径下的setup.iss.uninstall”即可。 至于如何调用的 setup.exe , 我的方法是自己用C++写了一个程序,然后用GUID找到要卸载的这个程序的 DISKTARGET路径,然后 setup.exe和setup.iss.uninstall就都可以获取到了。

       就这样~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
InstallShield安装与制作
关于Installshield里一些常见问题的解答
InstallShield使用完全教程
InstallShield 6.2 创建卸载快捷方式
InstallShield6.3安装文件制作要点
InstallShield Limited Edition for Visual Studio
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服