【问题标题】:NSIS Installer based on zip?基于 zip 的 NSIS 安装程序?
【发布时间】:2013-07-09 21:40:44
【问题描述】:

有没有人有“基于 zip 的安装程序”的基本 NSIS 脚本示例?或者可以告诉我命令吗?我知道 NSIS 内置了该工具,但我想根据它编辑脚本。 NSIS 仅输出基于 zip 的安装程序的 .exe。我想从脚本代码开始。

谢谢。

【问题讨论】:

    标签: nsis


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        要以 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 以获得“现代”用户界面。

        另请注意,文件需要在“文件”部分中枚举,或者如果您的文件位于文件夹中,则可以包含全部内容:

        File /r MyFolder\*.*
        

        这不会在安装目标目录中创建“MyFolder”。

        【讨论】:

          猜你喜欢
          • 2014-08-30
          • 1970-01-01
          • 2012-08-20
          • 1970-01-01
          • 1970-01-01
          • 2012-05-28
          • 1970-01-01
          • 1970-01-01
          • 2013-10-22
          相关资源
          最近更新 更多