代码改变世界

HOWTO:InstallShield中如何调用批处理文件

2010-11-18 09:51  Kevin.Wan  阅读(7315)  评论(8编辑  收藏  举报

版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。

在InstallShield中调用批处理文件其实是安装打包中很常用的一种手段,通过批处理启动服务,进行数据库初始配置等等。

在实际操作中,针对不同工程类型,对批处理的调用还是有很多疑惑困扰着大家,撰写此文希望能帮助到那些被困扰的打包开发人员。

这里假设我们的需求是要启动安装路径下的批处理文件Sample.bat。

InstallScript工程

这种类型调用批处理相对简单,通过LaunchAppAndWait函数进行调用,下面是简单示例: 

    szProgram = TARGETDIR ^ "sample.bat";  
    szParam = ""
    
LaunchAppAndWait(szProgram, szParam, LAAW_OPTION_WAIT LAAW_OPTION_HIDDEN); 

Basic MSI工程

MSI工程中对于批处理的调用较复杂,我们逐步说明如何操作:

  1. 通过Custom Action Wizard添加一个CA,启动向导
  2. 在Basic Information界面中为CA命名
  3. 在Action Type界面中指定Type为Launch an Executable;Location选择Stored in the Directory table
  4. 在Action Parameters界面中,Source选择INSTALLDIR,Target中输入内容:"[SystemFolder]cmd.exe" /c "[INSTALLDIR]Sample.bat"
  5. Additional Options界面默认
  6. 在Respond Options界面中,In-Script Execution选择Deferred Execution
  7. 在Insert into Sequence界面中,将CA插入到InstallFinalize之前,并设定Install Execute Condition为:Not Installed
  8. 其余默认