Deployment 将应用程序打包成单个二进制文件的通用跨平台工具?

Deployment 将应用程序打包成单个二进制文件的通用跨平台工具?,deployment,language-agnostic,cross-platform,packaging,Deployment,Language Agnostic,Cross Platform,Packaging,我有一个由几个脚本文件组成的应用程序(在本例中是用Lua编写的,例如Main.Lua、Helper1.Lua和Helper2.Lua)。为了在Windows上运行应用程序,当前需要有这些脚本文件以及解释器(lua52.exe和lua52.dll)。然后可以使用lua52.exe Main.lua启动该程序 理想情况下,我希望分发一个可执行文件Main.exe,而不是一个包含5个文件的文件夹。当以Main.exe的形式启动时,应发生以下情况: 将所有5个文件解压缩到临时目录中 启动lua52.ex

我有一个由几个脚本文件组成的应用程序(在本例中是用Lua编写的,例如
Main.Lua
Helper1.Lua
Helper2.Lua
)。为了在Windows上运行应用程序,当前需要有这些脚本文件以及解释器(
lua52.exe
lua52.dll
)。然后可以使用
lua52.exe Main.lua
启动该程序

理想情况下,我希望分发一个可执行文件
Main.exe
,而不是一个包含5个文件的文件夹。当以
Main.exe
的形式启动时,应发生以下情况:

  • 将所有5个文件解压缩到临时目录中
  • 启动
    lua52.exe Main.lua
  • 完成后删除临时目录
  • 是否有任何工具可以打包这5个文件并创建
    Main.exe

    我相信对于Python(仅限),
    pyinstaller-F
    符合这些要求。是否有一个通用工具,不依赖于Python(或Lua),理想情况下跨平台(Windows、OS X和Linux)可以做到这一点

    编辑:如果没有跨平台工具可以做到这一点,我很乐意在每个平台上使用不同的工具。对于Windows,WinRAR似乎几乎可以做我需要的事情(通过创建SFX存档),但不幸的是,它似乎不支持将
    转发到
    lua52.exe


    有谁知道比WinRAR更适合我需要的Windows工具吗?另外,对于OS X和/或Linux是否有类似的工具?

    如果您只针对一个特定的平台,那么应该有可用的安装程序生成器。例如,windows有 您的需求相当简单,因此实际上您可以在可移植的c/c++/java中编写自己的简单运行程序/安装程序,并为不同的系统创建不同的安装程序(因为lua52.exe仅在windows下工作)

    如果您需要跨平台的应用程序,您需要一些常见的运行时:java/ruby/nodejs,或者您可以尝试构建智能shell脚本。另一个选择是联机并创建web应用程序

    您考虑过

    WinZip®自解压器创建自解压Zip文件。这些 自解压Zip文件是电子文件分发的理想选择, 因为它们包含多个压缩文件,所以可以最大限度地减少下载 确保重要文件不会分离

    自解压Zip文件可以选择运行“设置”或 “安装”程序,由创建者提供,文件保存后 减压

    它是特定于Windows平台的,但我在软件发行版中使用过它,它非常好,而且非常便宜。它还有一个很好的优势,即已经拥有Lua解释器的偏执超级用户可以从同一归档文件中手动提取Main.Lua脚本,而无需信任您的本地可执行文件(安装程序或解释器)。有关功能的详细列表,请参见上面的链接


    另外,关于跨平台,您正在打包的lua解释器显然是针对特定平台的,因此您已经需要为您的用户提供针对每个平台的特定于平台的可执行归档。因此,除了发布准备时间之外,使用统一的跨平台工具生成所有特定于平台的安装程序没有多少附加价值。你可以考虑一些类似于大多数用户可能已经拥有的java JRE(虽然如果他们不强迫他们下载java,只是安装程序运行起来有点傻)。< /P> < P>对于跨平台部署,BITROCK有一个很棒的工具集(假设你有钱花),见

    我不知道它到底是如何工作的,但最终的结果是好的多平台安装程序,使用它来打包他们的开源应用程序(我见过Windows和Linux安装程序)

    如果您特别寻找lua解决方案,请检查以下答案:

    或者你可以考虑建立你自己的完全定制的exe加载器(因为Lua是开源的,你可以很容易地嵌入它)。C源代码包含在回答“lua2exe”谷歌查询可以帮助

    要将.NET应用程序打包到包含其所有资源的单个文件中,请参见以下示例: