2009-08-10 3 views
0

J'utilise NSIS pour faire un installateur.Méthodes AutoRun

1.I doivent simplement exécuter la configuration Mysql dans la première étape

plus tard le 2. Et l'exécution réussie de l'étape 1 (qui installe MySQL dans le système) je dois exécuter mes scripts de base de données.

3.now Je dois exécuter mon myproj.exe

Ici, le problème est en cours d'exécution d'installation est directement toutes les étapes en parallèle. Mais je dois les exécuter étape par étape et seulement après l'exécution réussie des étapes précédentes.

Merci, srinivas.

+0

Vous devez supprimer la balise C# et ajouter la balise NSIS à cette question pour obtenir davantage de points de vue de la part des experts de NSIS. –

Répondre

0

Je ne sais vraiment pas comment votre installateur exécute quoi que ce soit en parallèle. NSIS exécute des commandes de manière séquentielle. À moins de faire de grands efforts en utilisant des commandes que je n'ai jamais vues faire tourner NSIS en parallèle, ça ne fonctionne pas en parallèle. Pouvez-vous poster une partie du code source de votre programme d'installation pour que je puisse voir comment vous y parvenez?

Vous pouvez utiliser la commande nsExec :: ExecToStack pour lancer votre configuration MySql et obtenir un code de retour de l'installateur comme ceci:

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

Notez que nsExec :: ExecToStack attendra l'exécutable pour revenir avant exécuter la prochaine commande NSIS.

0

Je ne sais pas beaucoup de choses sur NSIS, mais nous avons un script d'installation qui appelle avec executables ExecWait:

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

Peut-être que ce que vous devriez utiliser. Voici un Quick Guide to NSIS.