Exec不在NSIS安装程序中工作

时间:2012-06-05 12:25:35

标签: nsis

我是NSIS的新手我正在尝试执行类似于pre请求的安装时执行可执行文件。我尝试了下面的代码,它将exe复制到安装路径,但它没有执行它。

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

2 个答案:

答案 0 :(得分:8)

Seki的答案大多是正确的,我只想补充一点,Exec / ExecWait的正确语法总是 Exec '"c:\path\app.exe" param1 "par am2" param3'

参数当然是可选的,但应始终引用应用程序的路径,这不仅仅是因为在你的情况下$ INSTDIR可能包含空格,但至少在Win9x上,如果你没有引用,它将会失败(根据到NSIS手册)

如果空格/缺少引号不是问题,那么您可能还需要考虑其他一些事项:

  • $ OUTDIR是新流程的工作目录(SetOutPath设置此项)
  • 缺少dll等(查看Process Monitor

答案 1 :(得分:1)

$INSTDIR变量是否映射到名称中包含空格的目录?如果是这样,您应该添加简单的引号以在Exec参数中包含双引号:

Exec '"$INSTDIR\setup.exe"'