Installation 覆盖Emmbed安装程序创建的文件

Installation 覆盖Emmbed安装程序创建的文件,installation,nsis,Installation,Nsis,因此,我在使用nsis创建的安装脚本中嵌入了两个安装程序,整个过程应该先安装一个程序,然后再安装另一个程序,然后用新版本覆盖第二个安装程序创建的三个文件。问题是这三个文件是在第二个安装程序开始工作之前创建的。如何确保只有在第二个安装程序完成其工作后才能创建这些文件 ` !include "MUI2.nsh" ; The name of the installer Name "ADIS" RequestExecutionLevel user ; The file to write Out

因此,我在使用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`
您可能应该以静默方式运行“Cliente\setup.exe”。大多数安装程序都有一个无声开关,您可以在命令行上使用,有些安装程序还提供了一个等待开关,这样即使安装程序使用子进程,您也可以等待


如果在file命令之前添加MessageBox,并且在其他安装程序完成之前不单击它,会发生什么情况?

是“Cliente\setup.exe”还是NSIS安装程序?是你创建的吗?不是,“Cliente\setup.exe”是我软件的一套旧安装套件。它不是NSIS安装程序,它是用Delphi制作的。谢谢!这就完成了,只有在用户单击MessageBox上的ok按钮后,才会创建文件。现在唯一的问题是,并非所有用户都会等到安装完成后才单击消息。我试图像这样运行“Cliente\setup.exe”
ExecWait“Cliente\setup.exe”/SP-/SILENT
,但编译时出现错误。我想这是因为它不支持静默模式。获取任何建议以阻止在需要文件之前创建这些文件