自动运行方法

时间:2009-08-10 07:55:28

标签: c# methods autorun

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

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

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

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

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

谢谢, SRINIVAS。

2 个答案:

答案 0 :(得分: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命令之前等待可执行文件返回。

答案 1 :(得分:0)

我对NSIS了解不多,但我们有一个安装脚本,用ExecWait调用可执行文件:

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

也许这就是你应该使用的东西。这是一个Quick Guide to NSIS