【问题标题】:How to wrap a project into a single .exe?如何将项目包装成单个 .exe?
【发布时间】:2012-06-11 18:29:54
【问题描述】:

我在 Visual Studio 中制作了 Allegro 游戏。它非常小。

但是我怎样才能得到一个完成的 .exe?当我从项目的调试文件夹中复制 .exe 并尝试运行它时,它基本上说“抱歉 Allegro dll 全部丢失!安装它们并重试”,因为我已将其从其资源中删除。

如何将其捆绑在一起,以便将所需的所有内容打包到 .exe 中?

【问题讨论】:

    标签: visual-studio allegro


    【解决方案1】:

    您要求执行的操作称为“静态链接”。其优点和缺点在here 中列出。对于某些编译器,Allegro.cc 记录了如何在 this page 上启用静态链接。

    【讨论】:

    【解决方案2】:

    为什么?

    1. 如果您想在一个文件中交付应用程序:

      • 在 Visual Studio 中使用 create an .msi setup project(或使用第三方工具),

      • 或者只是将文件(可执行文件和 DLL)压缩到存档中。大多数存档应用程序(如 WinZip 或 WinRar)还允许您创建一个可执行文件,该可执行文件将自行提取,而无需最终用户下载其他应用程序。

    2. 如果您出于某种奇怪的原因想要将所有内容放在一个可执行文件中,那么您可以:

      • 将源代码移动到同一个 Visual Studio 项目中。但你真的不应该,因为它不利于代码重用,并且会导致与代码组织相关的额外问题,

      • 如果您使用 .NET,请创建一个自定义解决方案,该解决方案将在内部(例如资源中)包含程序集并在启动时提取它们。这在 .NET 中是可能的,因为只有在需要时才需要程序集,这意味着在某些情况下使用库的应用程序不需要此程序集即可启动。

    【讨论】:

    • 您的建议看起来确实更好,但我也只是好奇。许多小型共享软件游戏和程序以 .exe 格式下载。他们就是这样做的,只是将整个库打包到项目中?
    • @Aerovistae:不知道小游戏是怎么做出来的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 2018-10-25
    • 1970-01-01
    • 2011-11-17
    相关资源
    最近更新 更多