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