基于zip的NSIS安装程序?

基于zip的NSIS安装程序?,nsis,Nsis,是否有人有一个基本的NSIS脚本示例,即“基于zip的安装程序”?或者你能告诉我命令吗?我知道NSIS内置了这个工具,但我想在此基础上编辑一个脚本。NSIS仅输出基于zip的安装程序的.exe。我想从脚本代码开始 谢谢 zip2exe工具生成一个简单的脚本,并将其传递给makensis,其中大部分代码都包含在文件中: !define ZIP2EXE_COMPRESSOR_ZLIB !define ZIP2EXE_INSTALLDIR "c:\foo" !include "${NSISDIR}\

是否有人有一个基本的NSIS脚本示例,即“基于zip的安装程序”?或者你能告诉我命令吗?我知道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

为了建立在Anders answer的基础上,应该在最新版本中做一些额外的事情。特别是应设置ZIP2EXE_名称和ZIP2EXE_输出文件:

!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”。

您可以使用以下脚本在目标位置提取zip文件,在编译此脚本之前,您需要下载ZipDLL.dll并将其放在NSIS安装文件夹中

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

sectionend