0

我正在使用 NSIS 来制作安装程序。

1.我必须在第一步中执行Mysql setup

2.稍后成功执行step1(即在系统中安装mysql)我需要执行我的数据库脚本。

3.现在我需要运行 myproj.exe

这里的问题是安装程序直接并行运行所有步骤。但是我必须一步一步地运行它们,并且只有在前面的步骤成功执行之后。

谢谢,斯里尼瓦斯。

4

2 回答 2

0

我对 NSIS 了解不多,但我们有一个安装脚本,它使用以下命令调用可执行文件ExecWait

ExecWait "msiexec /passive /liare+ ${SETUP_LOG_FILE} -i $TEMP\MyMsi.msi" $R0

也许这就是你应该使用的。这是NSIS 的快速指南

于 2010-11-09T16:40:18.553 回答
0

我真的不确定您的安装程序如何并行运行任何东西。NSIS 按顺序执行命令。除非你不遗余力地使用我从未见过的命令让 NSIS 并行运行,否则它不会并行运行任何东西。您能否发布一些安装程序的源代码,以便我了解您是如何完成此任务的?

您可以使用 nsExec::ExecToStack 命令启动 MySql 设置并从安装程序获取返回码,如下所示:

!include LogicLib.nsh    
StrCpy $myReturnCode "0"
nsExec::ExecToStack "$TEMP\MySqlSetup.exe"
Pop $myReturnCode
${If} "$myReturnCode" == ""
${OrIf} "$myReturnCode" == "0"
    // Presumably it worked, continue with installation
${Else}
    // Error, don't continue with installation
${EndIf}

请注意,nsExec::ExecToStack 将等待可执行文件返回,然后再运行下一个 NSIS 命令。

于 2009-08-10T15:08:04.800 回答