创建7-zip安装程序软件包时出错

时间:2018-08-08 23:46:25

标签: installer 7zip sfx self-extracting

如果这不是问这个问题的正确地点,我表示歉意。

我使用7zip创建一个安装程序包。最近,我的计算机已更新,无法再使用。我使用Visual Studio 2010中的Windows Installer创建安装包,并将其添加到名为setup.7z的文件中。我已经确认文件已正确存档。然后,我致电

copy /b 7zsd.sfx + config.txt + setup.7z setup.exe

将所有内容打包到一个名为“ setup.exe”的文件中。单击此按钮将启动安装程序。

更新后,我仍然可以制作文件,而且看起来还不错。但是,如果我尝试单击它,则会收到一条消息,提示7-Zip: Unsupported method.

我安装了7-Zip版本18.05(x86)。坦白地说,我不确定我在哪里7zsd.sfx文件,但是请记住一定要寻找它。它没有版本控制,但是最后一次修改是在2007年7月13日。我不知道版本是否重要,因为您不需要安装7-Zip,因为这是一个自解压的文件。但是,可能是较旧的版本无法解压缩较新版本压缩的内容。

2 个答案:

答案 0 :(得分:1)

我认为问题出在所使用的7zip和7zip.sfx的不同版本中。不幸的是,最新的7zip软件包中缺少SFX文件。 这是旧压缩版本的link至7zip_extra,该旧版本同时具有SFX文件和.bat文件来创建安装程序。 对我来说很好。

答案 1 :(得分:0)

设置工具 :为什么使用7-Zip?有很多创建(真实)设置的替代方法-其中一些是免费的: How to create windows installer (指向创建各种设置的工具的多个链接)。下面的简短说明也位于“ Alternatives ”(免费工具或具有免费功能的工具)下。这些工具已经过广泛测试,以确保运行时具有最小的依赖性。我想只是要记住和评估的一点。

7压缩

  

猜猜 :首先安装C/ C++ runtimes,然后看问题是否消失。接下来检查压缩-然后检查LZMA SDK   如下所述?

不受支持的压缩? 7-Zip: Unsupported method - use LZMA?尽管该答案已有两年历史了,但我认为仍然可能出现此问题。

缺少运行时吗? :您可能还想对 setup.exe 进行dependency walker检查,以查看如果它取决于包装盒上缺少的东西(例如MSVCRT.dll-或其他运行时库)。只需下载该工具即可。易于使用。或者,也许首先尝试install commonly used C/C++ runtimes。另外,Dependency Walker正在老化并且有时会显示垃圾。有更新的Dependencies-尚不是黄金时间,但可以尝试一下(单击Releases标签)。它已更新为处理Windows API-sets and WinSxS(并排程序集)。 注释 virustotal.com上的多个安全软件将依赖关系检测为“ 风险工具,而不是病毒 “(它是开放源代码)。

LZMA SDK 7zSD.sfx 文件可能来自LZMA SDK。您描述的命令行可以在主要的7-Zip帮助文件中找到(不是SDK,而是常规的7-zip安装随附的文件)。 "-sfx (Create SFX archive) switch"部分: Command Line Version => Switches => -sfc (Create SFX Archive


替代品

Visual Studio 2017 :Visual Studio的最新免费版本:Visual Studio Community 2017可以通过其Microsoft Visual Studio 2017 Installer Projects创建setup.exe文件(必须在安装Visual Studio 2017之后安装此扩展程序。)

WiX :开源WiX toolkit可以使用其Burn组件创建setup.exe文件。 A WiX Burn ad-hoc sample-只是为了获得总体思路-它具有学习曲线。没有GUI可以帮助您,它完全基于XML。在有或没有Visual Studio的情况下使用。

  

高级安装程序 :我相信Advanced Installer可以编译setup.exe的免费版本。尽管下载量很大,但我认为这对您来说还是可以的,而且很快。

高级安装程序上的更新免费版只能构建MSI文件,EXE引导程序可以使用付费版本(其中任何一个)构建。

dotNetInstaller :还有dotNetInstaller Setup Bootstrapper-我从未使用过。 Here it is on github.com(源)。

  

InnoNSIS :这些免费的non-MSI installers可以轻松为您创建setup.exe   已针对最小依赖性进行了优化。我没有用太多,但他们   是众所周知的。 NSIS似乎创建了与Zip工具兼容的存档文件。

IExpress 等:有security vulnerabilities会影响这些自解压软件包。我推荐使用具有专用资源的“真实”部署工具来快速修复此类问题的另一个原因,尽管它具有可以直接在7-zip中打开的setup.exe的优点。


文件提取

关于从各种类型的setup.exe文件中提取文件的主题:

  • MSI Extract MSI from EXE-可以提取所有MSI文件,也可以提取使用WiX创建的setup.exe文件
  • NSIS和Inno :看起来NSIS创建的文件与7-Zip(可理解的压缩)兼容,从外观上看与Inno并不相同。

某些链接

  
      
  • https://en.wikipedia.org/wiki/Self-extracting_archive#Overview:“ 用于解压缩实用程序正确地扩展其中一个的存档   自解压或标准变体,必须能够在   使用的文件格式和算法。 确切的可执行代码   因此,放置在自解压档案的开头   需要根据用于创建   存档。对于LZMA 7z,减压程序将有所不同   例如,与LZMA2 7z存档进行比较时。
  •