0

インストーラーの作成に NSIS を使用しています。

1.最初のステップでMysqlセットアップを実行するだけです

2.その後、ステップ 1 (システムに 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 を並行して実行するためにかなりの時間を費やしていない限り、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 に答える