2016-10-05 7 views
0

NSISを使用してサイレントモードでMySQLをインストールしようとしています。今はMySQLの部品を手に入れようとしているだけです。このスクリプトは純粋にMySQLをインストールするためのものです。NSISを使用したMySQLのサイレントインストール

私が読んだフォーラム投稿の大半は2009〜2011年のものですから、時代遅れと思われます。あなたは私がすべては静かに実行し、インストールフォルダを指定するには、MSIを頼むで見ることができるように

!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 

は、これまでのところ、私はこの基本的なスクリプトを持っています。

NSISインストーラをビルドして実行すると、$PROGRAMFILES\MySQL\MySQL Server 5.7.15というフォルダが表示されますが、その中には何もありません。

実行する必要があるものはありますが、実際のインストールでは何も試したことがありません。

すべてのポインタは素晴らしいでしょうか?

答えて

1

あなたはそれが抽出されたファイルの保存先のパスを設定するためFile指示する前SetOutPath命令を使用する必要があります。

通常、ファイルを抽出する前にSetOutPath "$InstDir"を実行します。

+0

私はそれを実行します。それは完璧な意味合いをして、私はちょうどその段階に到達する別の例に従っていた –

+0

私はmsiexecとSetOutPathを入れ替えたが、まだフォルダが空白に見えます。 MSIがインストールされていないようです。 –

+0

'SetOutPath'は' Section'の最初の命令である必要があります! 'SetOutPath'、次に' File'、そして 'ExecWait'!あなたの 'SetOutPath'行には、$ InstDirと同じではないかもしれないハードコーディングされたパスがいくつかあります。' SetOutPath'と 'ExecWait'の両方で同じパスを使います! – Anders

関連する問題