2016-10-05 4 views
0

Я пытаюсь установить MySQL без использования NSIS. Сейчас я просто пытаюсь получить часть MySQL, скрипт предназначен исключительно для установки MySQL.Бесшумная установка MySQL с использованием NSIS

Большинство сообщений форума, которые я читал, относятся к 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, но в ней ничего нет.

Я уверен, что есть что-то еще, что мне нужно запустить, но ничего не пробовал результаты в реальной установке.

Любые указатели были бы замечательными?

ответ

1

Необходимо выполнить команду SetOutPathдоFile инструкций, поскольку она устанавливает путь назначения для извлеченных файлов.

Вы обычно делаете SetOutPath "$InstDir" перед извлечением файлов ...

+0

Я дам, что в ходу. Это действительно имеет смысл, я просто следовал за другим примером, чтобы добраться до этого этапа. –

+0

Я поменял msiexec и SetOutPath, и все же папка кажется пустой. MSI, похоже, не устанавливает –

+0

'SetOutPath' должен быть первой инструкцией в разделе' Section'! 'SetOutPath', затем' File', затем 'ExecWait'! Строка 'SetOutPath' содержит некоторый жесткий путь, который может не совпадать с $ InstDir, использовать один и тот же путь как в' SetOutPath', так и 'ExecWait'! – Anders

Смежные вопросы