3

NSISは初めてですが、事前リクエストと同様に、インストール中に実行可能ファイルを実行しようとしています。exeをインストールパスにコピーする以下のコードを試しましたが、実行されていません。

Section "example" example
  SetOutPath "$INSTDIR"
  File "setup.exe"
  Exec "$INSTDIR\setup.exe"
  BringToFront
SectionEnd 
4

2 に答える 2

8

Seki からの回答はほぼ正しいです。Exec/ExecWait の正しい構文は常に Exec '"c:\path\app.exe" param1 "par am2" param3'

パラメーターはもちろんオプションですが、アプリへのパスは常に引用符で囲む必要があります。これは、 $INSTDIR にスペースが含まれる可能性がある場合だけでなく、少なくとも Win9x では引用しないと失敗するためです (NSIS によるとマニュアル)

スペース/引用符の欠如が問題でない場合は、他にいくつかの点を確認する必要があります。

  • $OUTDIR は、新しいプロセスの作業ディレクトリです (SetOutPath がこれを設定します)。
  • dll の欠落など ( Process Monitorで確認)
于 2012-06-05T15:27:05.693 に答える
2

$INSTDIR変数は、名前にスペースが含まれるディレクトリにマップされていますか? その場合は、単純な引用符を追加して、Exec引数に二重引用符を含める必要があります。

Exec '"$INSTDIR\setup.exe"'
于 2012-06-05T13:05:19.293 に答える