问题
I'm looking for an easy way to create a self extracting archive (EXE) on Microsoft Windows platforms. I know that there is a built-in tool IExpress.exe, but that has a wizard style UI and I need a "silent" tool, which can be called by scripts. It should be:
- Scriptable (Windows shell script or Ant build file)
- Free for commercial use
- Optionally unpack in a temporary folder or ask the user where to put the unpacked files
- Nice to have: Auto launch an executable in the archive after unpack
- No knick-knack like creating desktop icons, start menu entries, etc. Just plain unpack functionality into a named folder.
回答1:
Tools List: I assume you have already checked stuff like this? https://en.wikipedia.org/wiki/Self-extracting_archive.
iExpress: This tool has some severe security vulnerabilities. Don't use it please. It is tragic to deal with if your clients and customers face these problems. A wrong turn to make as they say.
7-Zip: I wrote this answer some time back relating to problems seen when creating 7-Zip archives: Error Creating a 7-zip installer package. Although 7-Zip seems solid overall, I get the feeling that the self-extraction parts is not prioritized (as of yet). Or basically just not finished.
WinZip & WinRAR: I guess WinZip or WinRAR would be the most common and most tested solutions, without being an expert on the subject. I always prefer "real" setup tools since these are generally much better tested than self-extracting archives due to their "heavy rotation" - plenty of use. They are also pretty good at running in minimum dependency scenarios - or on "normal systems" - without too many weird dependencies. And they appear more recognizable by anti-virus scanners and hence limiting the problem of false positives. I also find them easier for end users to deal with.
Can we ask why you need this to be self-extracting? Zip support has been built into Windows for quite some time? Just asking, I am sure there are very good reasons.
来源:https://stackoverflow.com/questions/52440605/self-extracting-archive-exe-for-windows