2013-02-20 36 views
1

我想要做一個簡單的安裝程序,我想複製一個zip文件到我的安裝目錄,並解壓它的內容,但現在它只複製我的zip文件,不解壓縮它。NSIS ZipDLL插件不工作

這裏是我的代碼

;-------------------------------- 
;Include Modern UI 
     !include "MUI2.nsh" 
;-------------------------------- 
;General 
    Name "App" ; Name of the app to install 
    OutFile "setup.exe" ; Name of the app installer 
    InstallDir "c:\app\" ; App install directory (default C:) 
    InstallDirRegKey HKCU "Software\App" "" ; Get installation folder from registry if available 
    RequestExecutionLevel user ;Request application privileges for Windows Vista 
    Caption "App" 
;-------------------------------- 
;Interface Settings 
    !define MUI_ABORTWARNING 
;-------------------------------- 
;Language Selection Dialog Settings 
    ;Remember the installer language 
    !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" 
    !define MUI_LANGDLL_REGISTRY_KEY "Software\App" 
    !define MUI_LANGDLL_REGISTRY_VALUENAME "Language" 
;-------------------------------- 
;Pages 
    !insertmacro MUI_PAGE_WELCOME 
    !insertmacro MUI_PAGE_LICENSE "License.txt" 
    !insertmacro MUI_PAGE_COMPONENTS 
    !insertmacro MUI_PAGE_DIRECTORY 
    !insertmacro MUI_PAGE_INSTFILES 
    !insertmacro MUI_PAGE_FINISH 
    ;!insertmacro MUI_UNPAGE_WELCOME 
    ;!insertmacro MUI_UNPAGE_CONFIRM 
    ;!insertmacro MUI_UNPAGE_INSTFILES 
    ;!insertmacro MUI_UNPAGE_FINISH 
;-------------------------------- 
;Languages 
    !insertmacro MUI_LANGUAGE "English" ; Default English 
    !insertmacro MUI_LANGUAGE "Spanish" ; Spanish 
;-------------------------------- 
; ZIP Handling 
    !include "ZipDLL.nsh" 
;-------------------------------- 
;Installer Sections 
Section "XAMPP" App 
    SetOutPath "$INSTDIR" 
    File App.zip 
    WriteRegStr HKCU "Software\App" "" $INSTDIR ; Store installation folder 
    ; WriteUninstaller "$INSTDIR\Uninstall.exe"    ; Create uninstaller 
    ; !insertmacro ZIPDLL_EXTRACT "$INSTDIR\App.zip" "$INSTDIR" "<ALL>" 
    !insertmacro ZIPDLL_EXTRACT "C:\App\App.zip" "c:\App\" "<ALL>" 
SectionEnd 
;-------------------------------- 
;Descriptions 
    ;Language strings 
    LangString DESC_App ${LANG_ENGLISH} "The server modules necesary to install app." 
    LangString DESC_App ${LANG_SPANISH} "Los modulos del servidor necesarios para instalar app" 

    ;Assign language strings to sections 
    !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN 
    !insertmacro MUI_DESCRIPTION_TEXT ${App} $(DESC_App) 
    !insertmacro MUI_FUNCTION_DESCRIPTION_END 
;-------------------------------- 
;Uninstaller Sections 
;Section "Uninstall" 
; ;ADD YOUR OWN FILES HERE... 
; Delete "$INSTDIR\Uninstall.exe" 
; RMDir "$INSTDIR" 
; DeleteRegKey /ifempty HKCU "Software\App" 
;SectionEnd 
;-------------------------------- 
;Installer Functions 
    Function .onInit 
     !insertmacro MUI_LANGDLL_DISPLAY 
    FunctionEnd 
;-------------------------------- 
;Uninstaller Functions 
; Function un.onInit 
;  !insertmacro MUI_UNGETLANGUAGE 
; FunctionEnd 
;-------------------------------- 

有什麼建議?

回答

0

我正在使用NSIS的可移植版本來編譯我的安裝程序。然後我在我的電腦上安裝完整版本,並且現在相同的腳本完美無缺地工作。

0

當將RequestExecutionLevel設置爲admin時,它不起作用?假設你正在安裝程序文件,你將不得不這樣做(儘管它不會提取到該文件夾​​的zip)。你確定文件是否到位?

+0

該文件已就位,安裝程序將其複製到安裝目錄(C:\ App \),但它不是unziping。 – desto 2013-02-20 20:45:44

+0

它不適用於管理員執行級別。 – desto 2013-02-20 20:52:22

+0

hm,剛剛測試過你的腳本,它工作的很好,所以也許問題不在你的代碼中? – idleberg 2013-02-20 20:58:38