1

簡単なインストーラーを実行しようとしています。zip ファイルをインストール ディレクトリにコピーし、その内容を解凍したいのですが、現在は zip をコピーするだけで、解凍しません。

これが私のコードです

;--------------------------------
;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
;--------------------------------

助言がありますか?

4

2 に答える 2

0

RequestExecutionLevel を admin に設定しても機能しませんか? プログラム ファイルにインストールする場合は、そのようにする必要があります (ただし、そのフォルダーに zip を展開することはできません)。ファイルが配置されていることを確認しましたか?

于 2013-02-20T20:44:02.463 に答える
0

インストーラーをコンパイルするために NSIS のポータブル バージョンを使用していました。その後、PC にフル バージョンをインストールしたところ、同じスクリプトが問題なく動作するようになりました。

于 2013-02-20T21:02:42.420 に答える