2009-08-10 6 views
0

Ich verwende NSIS zum Erstellen eines Installationsprogramms.AutoRun-Methoden

1.Ich müssen nur Mysql-Setup im ersten Schritt

2.Und später auf die erfolgreiche Ausführung des schritt1 auszuführen (das die mysql im System installiert) Ich muss meine Datenbank-Skripte auszuführen.

3.now ich brauche meine Myproj.exe

Hier ist das Problem Installer ausführen direkt parallel alle Schritte ausgeführt werden. Aber ich muss sie Schritt für Schritt und erst nach der erfolgreichen Ausführung der vorherigen Schritte ausführen.

Danke, srinivas.

+0

Sie sollten das C# -Tag löschen und das NSIS-Tag zu dieser Frage hinzufügen, um mehr Ansichten von NSIS-Experten zu erhalten –

Antwort

0

Ich bin mir nicht sicher, wie Ihr Installationsprogramm etwas parallel ausführt. NSIS führt Befehle sequenziell aus. Es sei denn, Sie verwenden Befehle, die ich noch nie gesehen habe, um NSIS parallel laufen zu lassen, es wird nichts parallel ausgeführt. Können Sie einen Teil des Quellcodes Ihres Installers posten, damit ich sehen kann, wie Sie das erreichen?

Sie können das nsExec :: ExecToStack Befehl Ihre MySql-Setup starten und einen Return-Code von dem Installateur wie so erhalten:

!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} 

Beachten Sie, dass nsExec :: ExecToStack für die ausführbare Datei warten soll, bevor zurückkehren Ausführen des nächsten NSIS-Befehls.

0

Ich weiß NSIS nicht viel über, aber wir haben ein Skript installieren, die ausführbaren Dateien mit ExecWait ruft:

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

Vielleicht, was das ist, Sie verwenden sollen. Hier ist ein Quick Guide to NSIS.