【问题标题】:Smallest executable for Windows适用于 Windows 的最小可执行文件
【发布时间】:2010-04-13 21:04:29
【问题描述】:

我需要为 Windows 创建一个非常简单的 GUI 应用程序(打开一个文件,根据用户输入进行一些更改,将文件上传到 Intranet 服务器)。客户公司的所有机器上都安装了最新版本的 Java SE、.NET 和 Adob​​e AIR。他们的 #1 要求是为 xcopy 部署提供尽可能小的软件包。那么我应该使用列出的 3 个平台中的哪一个?另一个选择当然是原生 exe。

谢谢,安德鲁

编辑:感谢所有答案,伙计们!客户在新西兰和澳大利亚设有办事处,据我所知,那里的连接非常昂贵且缺乏。尺寸要求来自他们的 IT 运营部门,过去他们拒绝安装自定义应用程序,因为功能太大......我正在寻找一个现代平台来开发应用程序,至少是 C++ ;) 所以我将问题更改为以下哪个平台的可执行文件大小最小:MS VC++ 2010、.NET 4.0 或更早版本、Java 1.6 或更早版本、Adobe AIR 1.6 或更早版本。

【问题讨论】:

  • 衡量大小的方法不止一种:内存占用、磁盘空间、CPU 使用率...
  • @FrustratedWithFormsDesigner 问题是关于“最小的可执行文件”和“最小的包”,所以我们实际上是在谈论磁盘上的可执行文件大小
  • 感谢所有的答案,伙计们!客户在新西兰和澳大利亚设有办事处,据我所知,那里的连接非常昂贵且缺乏。尺寸要求来自他们的 IT 运营部门,过去他们拒绝安装自定义应用程序,因为功能太大......我正在寻找一个现代平台来开发应用程序,至少是 C++ ;) 所以我将问题更改为以下哪个平台的可执行文件大小最小:MS VC++ 2010、.NET 4.0 或更早版本、Java 1.6 或更早版本、Adobe AIR 1.6 或更早版本。

标签: java .net air


【解决方案1】:

他们的 #1 要求是为 xcopy 部署提供尽可能小的软件包。

如果从字面上理解这个要求,几乎是不可能满足的。如果你的程序可以只剪掉一个字节,那么它就不能满足要求。

如果我是你,我会要求澄清:

  • 他们能否为您提供所需尺寸的具体测量值? IE。多小才算够小?

  • 如果不是,他们能否告诉您他们将如何判断您的程序是否满足他们的 #1 要求?

  • 如果没有,请将合同重新谈判为“时间和材料”...因为您目前无法控制它需要付出多少努力!

【讨论】:

    【解决方案2】:

    我见过一些用纯汇编编写的 Windows GUI 应用程序。你会惊讶于你可以在 10k 中容纳多少功能。

    在任何情况下我都不推荐汇编语言,但它是满足“尽可能小”这样严格要求的唯一方法。

    【讨论】:

    • 如果你弄乱了编译器设置并通过 upx 运行它,你也可以在纯 C 中做得相当好。大概在 6kb 左右。
    【解决方案3】:

    Tiny PE 所述,只有几个字节,但您真的需要这么小的应用程序吗?几千字节有很大区别吗?

    【讨论】:

      【解决方案4】:

      手写汇编;-)

      但为了可维护性,我会使用 .NET,或者使用 delphi/c++ 编写的带有手动 Windows API 调用的本机 exe。

      【讨论】:

        【解决方案5】:

        有什么意义?无论您选择哪种技术,可执行文件都不会超过几千字节(不包括图像等资源)。如今,硬盘驱动器具有千兆字节的存储空间,互联网连接每秒可以传输数兆字节。您可能会担心一个大型应用程序(例如,超过 50 或 100 MB),但在您的情况下,这没有任何意义......

        【讨论】:

        • 也许他的客户有 ISDN 连接?但一个非常奇怪的约束在当前时间..
        • 即使使用 ISDN,即使是几十 KB 的传输也不会超过几秒钟...
        • 也许吧,但很多要求都是错误的……如果应用程序像 OP 所说的那样简单,那么差异永远不会超过几 KB,甚至连接不良要传输的数据量非常可笑。我们不再使用软盘和 9600 bps 调制解调器了……但我还是预料到会遭到否决;)
        【解决方案6】:

        我会使用 .Net,因为您的目标操作系统是 Windows 并且 .Net 附带它。至于决定哪个平台将在磁盘上生成最小的应用程序,我不知道。但是,我确信所有三个 API 都会生成比所有这些平台的总和小数百万倍的应用程序。

        为什么有这个尺寸要求?给我们更多细节......也许还有其他方法可以让您的客户满意!

        【讨论】:

          【解决方案7】:

          Delphi 或 .NET(带有 C# 的 WinForms)可能是最好的选择。 Delphi 将生成不需要任何外部依赖项的本机可执行文件,但由于环境已经具有 .NET,它也符合要求。

          【讨论】:

            【解决方案8】:

            想过silverlight out of browser application吗?它们非常小。

            【讨论】:

              【解决方案9】:

              使用 VC++ 创建原生应用程序,然后使用可执行文件压缩器对其进行压缩。

              【讨论】:

                猜你喜欢
                • 2017-03-09
                • 2014-04-11
                • 1970-01-01
                • 2010-10-07
                • 1970-01-01
                • 1970-01-01
                • 2010-10-01
                • 2010-10-01
                • 2015-11-18
                相关资源
                最近更新 更多