InstallShield 工程类型MSI 使用过程中碰到的问题及解决方法。

简介: 原文 http://www.cnblogs.com/daocaorenbx/p/InstallShield.html 一、安装完 桌面创建IE快捷方式:   1、  install script可以直接建internet快捷方式。

原文 http://www.cnblogs.com/daocaorenbx/p/InstallShield.html

一、安装完 桌面创建IE快捷方式:

  1、  install script可以直接建internet快捷方式。

  2、  basic msi 要先在desktop随便创建一个快捷方式, 修改Target和Arguments两项。将Target 的内容改为[ProgramFilesFolder]Internet Explorer\IEXPLORE.EXE,即将快捷方式指向IE,然后将Arguments修改为网址(必须有http://):http: //tools.taokuaiche.com

二、现在流行安装完程序打开网址: 只需在OnEnd中加一行命令:

  (使用默认浏览器打开)

  1、LaunchApplication("http://tools.taokuaichen.com", "", "", SW_NORMAL, INFINITE, LAAW_OPTION_WAIT | LAAW_OPTION_USE_SHELLEXECUTE );

  (使用IE浏览器打开)

  2、LaunchAppAndWait(WINDIR ^ "explorer.exe","http://tools.taokuaichen.com", LAAW_OPTION_WAIT);

三、覆盖安装:每次运行setup.exe时不提示卸载,仍执行安装:

  开始修改了卸载逻辑,强制进行每次安装,导致程序安装后无法卸载的死循环。 开始菜单及添加/删除的卸载也是安装,后来在网上找了下资料试了下真管用。操作如下:

  Basic MSI工程删除behaviorandLogic->custom actions and Sequences-> Sequencse->installation-> Execute中的RegisterProduct和PublishProduct即可。

  注:如果碰到文件有更新不了的现象让你们的开发人员对 升级文件的版本号修改为高一点的即可。

四、现在好多安装程序在安装完成后都有推荐安装其他工具,安装完成去调用另一个setup安装另外的程序

  推荐安装的工具不超过2个可以通过以下方法实现(超过2个则需要自定用界面了):

  1、将另一个setup.exe加入到 support files—language independent中。(此处的调用路径为SUPPORTDIR)

  2、在OnFrstUIAfter中 调用LaunchApp (SUPPORTDIR ^ "setup.exe","");

五、安装包升级的时候如何检查安装目录下被安装程序是否正在运行。如果正在运行则跳提示退出。

        if( Is ( FILE_LOCKED, TARGETDIR^"XXX.exe")) then

    if(  MessageBoxEx( "检查到'XXXX'正在运行,请关闭后再重试","安装提示", WARNING|MB_OK )) then

              abort;

           endif;

       endif;

六、卸载完后判断根目录下及开始菜单是否卸载干净,不干净则强制删除

      查找开始菜单是否存在未卸载干净的文件夹

  nResult=QueryProgItem (FOLDER_PROGRAMS, "文件夹名称",svCmdLine, svWrkDir,svIconPath,nvIconIndex, svShortCutKey, nvMinimizeFlag);

  如果存在则强制删除

     if(!(nResult< 0))then  

           DeleteProgramFolder ( FOLDER_PROGRAMS^"文件夹名称" );

           //MessageBox ("DeleteProgramFolder success.", SEVERE);

  endif;

  查找安装目录是否存在未卸载干净的文件夹

  nResult=QueryProgItem (TARGETDIR, "文件夹名称",svCmdLine, svWrkDir,svIconPath,nvIconIndex, svShortCutKey, nvMinimizeFlag); 

  如果存在则强制删除

  if(!(nResult< 0))then

          DeleteProgramFolder ( TARGETDIR^"文件夹名称" );  

     endif;

以上有些问题是网上找了好多资料 试过可以执行成功的。

刚开始接触研究installshield,发现解决一个问题需要很长的时间,网上找资料不断的调试、修改、研究。解决完才发现找到适合的方法几分钟就能搞定,希望给大家带来个方便!

目录
相关文章
|
5月前
|
Java Android开发 数据安全/隐私保护
eclipse下载与安装步骤详解,包含解决错误(最全最详细)
eclipse下载与安装步骤详解,包含解决错误(最全最详细)
|
前端开发
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
175 0
|
存储 开发工具 Windows
关于Visual Studio相关软件(本文采用Visual Studio2019举例)二次安装时,无法更改安装路径的解决办法之一
前言: ● 作者在对电脑磁盘分区后,二次搭载Visual Studio2019编译环境在重新指定安装路径时遇到了无法更改安装路径的问题。现在就解决问题办法之一进行分享(作者水平有限,目前仅了解到这一种解决办法) ●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!
558 0
关于Visual Studio相关软件(本文采用Visual Studio2019举例)二次安装时,无法更改安装路径的解决办法之一
|
安全
[经验]使用Keil MDK+Jlink-OB下载失败的解决办法
[经验]使用Keil MDK+Jlink-OB下载失败的解决办法
511 0
[经验]使用Keil MDK+Jlink-OB下载失败的解决办法
|
IDE API 开发工具
Visual Studio编辑器还原项目NuGet提示某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
Visual Studio编辑器还原项目NuGet提示某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
299 0
Visual Studio编辑器还原项目NuGet提示某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
|
IDE 开发工具 C++
Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法
Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法
618 0
Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法
|
计算机视觉 Windows 编译器
Windows环境下最新OpenCV和Contribute代码的联合编译【20180926更新红字】
解决这个问题,目的在于获得并使用最新的完全版本的代码,主要方法是对CMake能够熟练使用,并且对编译等基础支持有所了解。因为这篇博客经过多次修改,所以里面的内容和配图可能有不是完全比对的地方,但是只要加以理解,关键信息肯定可以Get到的,后面我会在所处视频中对相关信息进行进一步整编,方便理解。
1185 0