我的 exe 通常具有 dll 依赖项,我使用像 nsis 这样的安装程序打包这些依赖项。或inno 。 这对于大型程序来说是有意义的,但对于小型脚本来说就太过分了。
是否有另一种方法来捆绑依赖项,以便用户可以只执行单个 exe,而不需要 PATH 中的 dll 目录?
编辑
我希望有一个不依赖于 dll 类型的解决方案,并且也适用于其他类型的依赖项。
以下是一些可能的选择:
- http://www.adontec.com/index.htm?GO=/runtimepacker_e.htm
- http://boxedapp.com/
- http://www.filetransit.com/view.php?id=16640
有人有使用过这样的工具的经验吗?
最佳答案
好吧,你不喜欢我的另外两个想法...所以这里...
您交付并向客户提供“ stub EXE”。 stub EXE 不依赖于任何其他内容,只包含一个 ZIP 文件(或安装包或类似文件)作为 stub EXE 中的资源。嵌入 stub EXE 中的 zip 文件仅包含实际的程序 EXE 及其所有依赖的 DLL。当 stub EXE 运行时,它只是将 ZIP 文件解压到 TEMP 子目录并启动应用程序 EXE。
您可以对其进行优化,如果应用程序已安装在 %TEMP% 中,则您可以跳过解压步骤,只需启动已存在的应用程序 EXE。
就我个人而言,我不会走这条路。如果 EXE 有依赖项,只需为用户提供一个安装程序即可。但您比我更了解您的用户和客户。
关于windows - 如何在exe中捆绑依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5828073/