版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。
在InstallShield中调用批处理文件其实是安装打包中很常用的一种手段,通过批处理启动服务,进行数据库初始配置等等。
在实际操作中,针对不同工程类型,对批处理的调用还是有很多疑惑困扰着大家,撰写此文希望能帮助到那些被困扰的打包开发人员。
这里假设我们的需求是要启动安装路径下的批处理文件Sample.bat。
InstallScript工程:
这种类型调用批处理相对简单,通过LaunchAppAndWait函数进行调用,下面是简单示例:
szProgram = TARGETDIR ^ "sample.bat";
szParam = "";
LaunchAppAndWait(szProgram, szParam, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);
szParam = "";
LaunchAppAndWait(szProgram, szParam, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);
Basic MSI工程:
MSI工程中对于批处理的调用较复杂,我们逐步说明如何操作:
- 通过Custom Action Wizard添加一个CA,启动向导
- 在Basic Information界面中为CA命名
- 在Action Type界面中指定Type为Launch an Executable;Location选择Stored in the Directory table
- 在Action Parameters界面中,Source选择INSTALLDIR,Target中输入内容:"[SystemFolder]cmd.exe" /c "[INSTALLDIR]Sample.bat"
- Additional Options界面默认
- 在Respond Options界面中,In-Script Execution选择Deferred Execution
- 在Insert into Sequence界面中,将CA插入到InstallFinalize之前,并设定Install Execute Condition为:Not Installed
- 其余默认