有没有人有一个基本的NSIS脚本示例,即“基于zip的安装程序”?或者可以告诉我命令?我知道NSIS内置了该工具,但我想基于此编辑脚本。 NSIS仅根据zip输出安装程序的.exe。我想从脚本代码开始。
感谢。
答案 0 :(得分: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
答案 1 :(得分:2)
您可以使用以下脚本解压缩目标位置中的zip文件,在编译此脚本之前,您需要将ZipDLL.dll下载到NSIS安装文件夹中。
OutFile "Zip.exe"
section
ZipDLL::extractall "C:\Users\raj\Desktop\envConfig.zip" "C:\Program Files (x86)\Zip"
sectionend
答案 2 :(得分:0)
要在Anders答案的基础上,在最新版本中应该做一些额外的事情。特别应设置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替换为" Modern" UI。
另请注意,文件需要在"文件"中进行枚举。如果您将文件放在文件夹中,则可以包含整个内容:
File /r MyFolder\*.*
这不会创建" MyFolder"在安装目标目录中。