如果这不是问这个问题的正确地点,我表示歉意。
我使用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,因为这是一个自解压的文件。但是,可能是较旧的版本无法解压缩较新版本压缩的内容。
答案 0 :(得分:1)
我认为问题出在所使用的7zip和7zip.sfx的不同版本中。不幸的是,最新的7zip软件包中缺少SFX文件。 这是旧压缩版本的link至7zip_extra,该旧版本同时具有SFX文件和.bat文件来创建安装程序。 对我来说很好。
答案 1 :(得分:0)
设置工具 :为什么使用7-Zip?有很多创建(真实)设置的替代方法-其中一些是免费的: How to create windows installer (指向创建各种设置的工具的多个链接)。下面的简短说明也位于“ Alternatives
”(免费工具或具有免费功能的工具)下。这些工具已经过广泛测试,以确保运行时具有最小的依赖性。我想只是要记住和评估的一点。
猜猜 :首先安装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(源)。
Inno
或NSIS
:这些免费的non-MSI installers可以轻松为您创建setup.exe
已针对最小依赖性进行了优化。我没有用太多,但他们 是众所周知的。 NSIS似乎创建了与Zip工具兼容的存档文件。
IExpress 等:有security vulnerabilities会影响这些自解压软件包。我推荐使用具有专用资源的“真实”部署工具来快速修复此类问题的另一个原因,尽管它具有可以直接在7-zip中打开的setup.exe
的优点。
关于从各种类型的setup.exe
文件中提取文件的主题:
setup.exe
文件某些链接 :
- https://en.wikipedia.org/wiki/Self-extracting_archive#Overview:“ 用于解压缩实用程序正确地扩展其中一个的存档 自解压或标准变体,必须能够在 使用的文件格式和算法。 确切的可执行代码 因此,放置在自解压档案的开头 需要根据用于创建 存档。对于LZMA 7z,减压程序将有所不同 例如,与LZMA2 7z存档进行比较时。“