微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在执行嵌入式安装程序之前,如何等待父NSIS安装程序完成?

如何解决在执行嵌入式安装程序之前,如何等待父NSIS安装程序完成?

我正在尝试在另一个安装程序的脚本中运行安装程序。 父安装程序需要完成才能正确运行嵌入式安装程序。

!include "MUI2.nsh"
Icon "C:\Users\user\Pictures\logo.ico"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES

!insertmacro MUI_LANGUAGE "English"


Section
ExecWait "$INSTDIR/CM/CMInstaller.exe"
SectionEnd

那我该如何在执行CMInstaller.exe之前等待父安装程序?

感谢您的回答!

解决方法

EDIT: 正如Anders所指出的,-POST不是特定的部分名称,只需将此部分(包含您的子安装程序)放置在主要安装部分之后,或使用.onInstSuccess回调函数

Original answer: 在我们的项目中,我们使用-Post部分执行一些安装后操作,例如将卸载程序或快捷方式放在桌面上,这可能不是最佳做法,因为在特定情况下有一个-FinishComponents部分,检查here

Section -Post
  SetShellVarContext all
  SetOutPath "$INSTDIR"
  WriteUninstaller "$INSTDIR\Uninst.exe"
  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" "$INSTDIR\Uninst.exe"   
  ;Write install path registry
  WriteRegStr HKLM "${PRODUCT_INSTALL_DIR_REGKEY}" "${PRODUCT_INSTALL_DIR_SUBKEY}" $INSTDIR
  !insertmacro WriteInstallLog "Install_log.log" "Installation completed"
  ;Execute CMInstaller here
  ExecWait "$INSTDIR/CM/CMInstaller.exe"
SectionEnd

根据NSIS文档,安装成功后还有一个回调函数.onInstSuccess

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。