【问题标题】:Best way to compress a folder into an exe for re-use in Windows将文件夹压缩为 exe 以在 Windows 中重复使用的最佳方法
【发布时间】:2011-10-30 19:52:05
【问题描述】:

我有点荒谬地需要为最终用户提供一种非常简单的方法来将程序目录从他们系统上的 Program Files 中提取到一个自解压文件中,他们可以使用该文件在其他系统上复制该目录。

我想知道我的选择是什么,以尽可能接近一键式。最终用户不会费心自己压缩它等等。

这些用户有这种需求是因为我们公司在相当长的一段时间内没有归档旧安装,而且升级并不总是一种选择。

【问题讨论】:

    标签: windows compression archive


    【解决方案1】:

    这听起来像是你在幻想你可以简单地从一台机器上的 Program Files 复制一个目录,到一台新机器上的 Program Files 中,它应该可以工作。

    大多数 Mac 软件都是这样工作的,如果所有软件都这样工作就好了。 唉,Windows 安装程序经常在不同的位置安装各种文件,将关键信息放入 Windows 注册表项,并具有其他注册和反盗版机制,因此该程序无法在新机器上运行。

    参见“Is it possible to clone only the software on a machine?”、“Copy all installed programs & files in a hard disk (which has 32 bit Windows 7) and clone/transfer it to another computer which has 64 bit Windows 7”、“Is there a way to clone an NTFS hard drive but leave some files out?”等

    如果您以某种方式知道您的特定应用程序没有这些外部依赖项,并且在仅复制文件夹后可以在新机器上正常工作,那么也许您可以:

    • 在您的文件服务器或 CD 或两者上制作该应用程序的“黄金主”版本(可能在自解压的可执行文件中),并使用该主版本安装在所有新计算机上。这种方法可以保证“金主”没有在“金主”创建后创建的病毒。

    或者

    • 由于您已经知道特定应用程序文件夹的名称(如 mtijn 建议的那样),因此请创建一个批处理文件,该文件使用该名称和适当的命令行参数调用存档程序,以将其压缩为自解压可执行文件。将批处理文件和归档程序放在 U 盘上;也许使批处理程序自动运行。有各种各样的存档器绰绰有余——winrar、UPX、WinZip、7-zip、IExpress 或任何其他支持self-extracting archives 的便捷存档器中的任何一种。

    【讨论】:

    • 这是我的安装,没有注册表或其他我无法处理的部门。我认为真正的解决方案是在次要版本之间进行自动更新并让每个人都升级。我可以为拒绝更新的客户使用 Inno Setup 来生成安装和存档以供以后使用。
    【解决方案2】:

    如果您只是在寻找一个应用程序,那么使用 7zip 创建一个自解压 zip 可能是一种选择。如果您正在寻找一个库来编写自己的应用程序,那么您可以查看 ionic zip 并使用程序文件文件夹的环境变量来找到该文件夹​​(但是您只是压缩一个文件夹,其他依赖文件夹怎么样和注册表项?)。或者,如果您愿意复制整个系统,您也可以轻松地使用它。

    【讨论】:

    • 没有其他部门,只是 Program Files 下的一个文件夹。要求是最终用户必须能够在没有我们帮助的情况下轻松完成 - 我有很多选择,从 CSCript 压缩到 7-zip - 但最终结果需要尽可能接近 1-click最终用户。
    • 如果保证安装文件夹始终相同,您可以使用 C# 和 ionic zip lib 制作一个非常简单的应用程序。至于一键式方法..快捷方式?自动运行?
    • 我希望已经存在可以执行此操作的东西,例如可以扩展 inno setup 来执行此操作,或者我可以编写一些命令行工具。看起来写代码是最好的方法,不过....
    • 哦,当然你可以在命令行调用一个 zip 应用程序,把它放在一个批处理文件中,为它创建一个快捷方式,为它创建一个自动运行文件,把它放在一个可引导的 cd 上,把它在可启动的 USB 记忆棒上,.. 取决于您在系统上的可能性
    【解决方案3】:

    我会推荐 winrar 和自解压存档。 winrar 仍然是最好的存档和压缩程序之一。它不是很贵。您将获得一个 Lifttime 更新和支持许可证。自解压存档有许多选项,例如不同的预处理和不同的压缩器。它可以将档案分成不同的大小。它有一个纠错码,可以与命令行一起使用来编写脚本。这是一个完美的一键式解决方案。

    【讨论】:

      猜你喜欢
      • 2015-10-15
      • 2014-11-09
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多