使用 NSIS 静默安装 MySQL

Silent install of MySQL using NSIS

我正在尝试使用 NSIS 静默安装 MySQL。现在我只是想把 MySQL 部分弄下来,脚本纯粹是为了安装 MySQL.

我读过的大部分论坛帖子都是 2009-2011 年的,所以我认为已经过时了。

到目前为止我有这个基本脚本:

!include MUI2.nsh
!include WordFunc.nsh
!insertmacro VersionCompare
!include LogicLib.nsh
!include InstallOptions.nsh
!include nsDialogs.nsh

Name "sqltest"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT

OutFile "sqltest.exe"
InstallDir "$PROGRAMFILES\sqltest"
RequestExecutionLevel admin

XPStyle on


!define MUI_WELCOMEPAGE_TEXT "The MySQL Test Install"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
;!insertmacro MUI_UNPAGE_CONFIRM
;!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"



Section "install"
    File mysql.msi
    ExecWait 'msiexec /i "$INSTDIR\mysql.msi" /qn'
    SetOutPath "$PROGRAMFILES\MySQL\MySQL Server 5.7.15"

SectionEnd

如您所见,我所做的只是让 MSI 静默 运行 并指定安装文件夹。

当我构建 NSIS 安装程序并 运行 时,文件夹 $PROGRAMFILES\MySQL\MySQL Server 5.7.15 出现但里面什么也没有。

我确定我还需要做一些其他事情 运行 但我没有尝试任何实际安装结果。

任何指点都很好?

您需要在 之前使用 SetOutPath 指令 File 指令,因为它设置了提取文件的目标路径。

您通常会在提取文件之前执行 SetOutPath "$InstDir"...