2013-07-09 148 views
2

有沒有人有一個基本的NSIS腳本示例是「基於zip的安裝程序」?或者可以告訴我命令?我知道NSIS內置了該工具,但我想根據它編輯腳本。 NSIS僅輸出基於zip的安裝程序的.exe。我想從腳本代碼開始。基於zip的NSIS安裝程序?

謝謝。

回答

2

的zip2exe工具生成,它傳遞給makensis一個簡單的腳本,大部分代碼是在文件中,它包括:

!define ZIP2EXE_COMPRESSOR_ZLIB 
!define ZIP2EXE_INSTALLDIR "c:\foo" 

!include "${NSISDIR}\Contrib\zip2exe\Base.nsh" ; You could edit this if you wanted to keep using zip2exe 
!include "${NSISDIR}\Contrib\zip2exe\Classic.nsh" 

!insertmacro SECTION_BEGIN 
File "file1fromzip.txt" 
File "file2fromzip.exe" 
!insertmacro SECTION_END 
0

要建立在安德斯答案,一些額外的事情應該在最新完成版。特別ZIP2EXE_NAME和ZIP2EXE_OUTFILE應設置:

!define ZIP2EXE_COMPRESSOR_ZLIB 
!define ZIP2EXE_INSTALLDIR "c:\foo" 
!define ZIP2EXE_NAME "My Application" 
!define ZIP2EXE_OUTFILE "MyInstaller.exe" 

!include "${NSISDIR}\Contrib\zip2exe\Base.nsh" 
!include "${NSISDIR}\Contrib\zip2exe\Classic.nsh" 

!insertmacro SECTION_BEGIN 
File "file1fromzip.txt" 
File "file2fromzip.exe" 
!insertmacro SECTION_END 

Classic.nsh可以Modern.nsh被替換爲 「現代」 UI。

另外請注意,這兩個文件所需要的「文件」一節中所列舉的,或者如果你有一個文件夾中的文件,您可以包括的全部內容:

File /r MyFolder\*.* 

這將不會創建「 MyFolder「在安裝目標目錄中。

1

您可以使用以下腳本來提取目標位置中的zip文件,並且在編譯此腳本之前,您需要下載ZipDLL.dll請在您的NSIS安裝文件夾中。

OutFile "Zip.exe" 
section 
ZipDLL::extractall "C:\Users\raj\Desktop\envConfig.zip" "C:\Program Files (x86)\Zip" 

sectionend 
+0

已經有一個很好的解決方案。 –