所以我将两个安装程序嵌入到用nsis创建的安装脚本中,整个过程应该安装一个程序然后安装另一个程序,然后用新版本覆盖第二个安装程序创建的三个文件。问题是这三个文件是在第二个安装程序开始工作之前创建的。如何确保仅在第二个安装程序完成它的工作后才创建这些文件?
`
!include "MUI2.nsh"
; The name of the installer
Name "ADIS"
RequestExecutionLevel user
; The file to write
OutFile "ADIS.exe"
Unicode true
; The default installation directory
InstallDir "C:\ADIS"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "Spanish"
;--------------------------------
; The stuff to install
Section ""
; Set output path to the installation directory.
SetOutPath $INSTDIR
RMDir /r $INSTDIR
SectionEnd
SectionGroup "instaladores"
Section "Firebird"
ExecWait "Firebird\Firebird-2.5.4.26856_0_Win32.exe"
SectionEnd
Section "Cliente"a
ExecWait "Cliente\setup.exe"
SectionEnd
SectionGroupEnd
Section "Actualiza"
; Put file there
;File Nvo\ADIS.exe
;File Nvo\ADIS.ICO
;File Nvo\ADIS.GDB
File /r "Nvo\*"
SectionEnd`
答案 0 :(得分:0)
你应该运行" Cliente \ setup.exe"默默。大多数安装程序都有一个可以在命令行上使用的静默开关,有些还提供了一个等待开关,因此即使安装程序使用子进程也可以等待。
如果您在文件命令之前添加MessageBox并且在其他安装程序完成之前不点击它会发生什么?