【问题标题】:How to distribute an installer which contains a bootstrapper如何分发包含引导程序的安装程序
【发布时间】:2009-08-03 09:18:37
【问题描述】:

由于 Microsoft Windows Installer (MSI) 系统的严重限制,需要创建引导程序才能安装多个 MSI 文件(由于前置/后置条件)。但是,这会引入分发问题,因为您现在有多个文件需要包含在分发中。当然有多种方法可以将其作为单个文件分发。

1:存档

您可以将所有文件放入用户下载的单个存档中。对于 MS Windows,显而易见的选择当然是 PK-ZIP 存档。但这不是很用户友好。用户首先必须解压存档,然后运行引导程序(称为 setup.exe)。

2:SFX 存档

您可以将其包装到自解压存档中,而不是分发一个普通的存档文件。执行此 SFX 存档将提示用户提取和/或运行内容。但这为整个安装过程增加了另一个提示(#1:SFX 提示,#2:引导程序提示,#3:主安装程序提示)。这也不是非常用户友好,因为它会由于多个提示而增加烦恼。

3:单文件引导程序

当然可以选择将所有提取文件嵌入到引导程序中。对于普通的最终用户来说,这可能是最友好的。但是,这对系统管理员不太友好,因为通常引导程序比 MSI 文件更难管理。管理员将装配系统,以便在安装主 MSI 时也安装所有必需品,因此不需要引导程序。

4:其他?

其他未列出的方法?

那么您认为为需要引导程序的 MS Windows 软件分发安装程序的最佳方式是什么?

【问题讨论】:

  • 使用 7zip SFX 调用主安装程序。可以静默调用 7zip SFX。因此,您需要确保您的安装程序也接受 /q 命令。

标签: windows installation


【解决方案1】:

我们为零售分发和所有单用户安装提供单文件引导程序

批量许可客户(例如 10 个以上席位)会收到一个(或多个)MSI 文件以及说明和先决条件列表,这些文件必须在我们的应用程序运行之前安装(在 XP 之间略有不同) 、Vista 和 Win2k)。如果未安装先决条件,EXE 会阻止安装,MSI 将允许安装,前提是系统管理员知道他们在做什么,并且可能在下一次重新启动之前同时安装先决条件。

基本上,单一引导程序适用于非系统管理员,即需要单击解决方案的人。喜欢对安装进行更细粒度控制的系统管理员和企业 IT 支持人员对多个文件感到满意,即使这对他们来说意味着更多的工作。单个 EXE 文件是公开可用的,说明 + 多个文件只能通过联系我们的销售团队获得。

此方法为我们提供了两全其美的优势,并且能够为家庭和企业客户提供不同的默认配置 - 提示、提示、启动屏幕、自动更新和欢迎对话框在企业安装中默认禁用但对“单个”用户启用。

【讨论】:

    【解决方案2】:

    我们使用 Wix 创建非常灵活的 MSI 文件,并且可以通过构建脚本轻松实现自动化。

    要通过单个引导程序将多个 MSI/EXE 文件链接在一起以进行分发,我强烈推荐 DotNetInstaller。我与这个产品没有任何联系或附属,但它一直是在非托管代码中生成高度可配置的引导程序的项目的救星。

    我写了我最近使用这些技术开发多语言 MSI 和引导程序的经验here。这从头到尾贯穿整个过程。使用 DotNetInstaller,您可以根据需要从 URL 下载和安装依赖项,或者轻松地将它们直接嵌入到引导程序中。我也考虑过 WIX 自己的 SETUPBLD 引导程序生成器和 GenerateBootStrapper MSBuild 任务,但它们非常基础。也就是说,WIX 3.5 Burn 实用程序目前正在开发中,一旦发布,它可能是一个相当不错的选择。

    【讨论】:

      【解决方案3】:

      关于:1: An archive: 2: A SFX archive

      您可以使用自动启动 Setup.exe 的自解压 .ZIP。 WinZip 以低廉的价格提供这种支持。这样一来,客户就会更加友好。它可以配置为在没有提示的情况下启动引导程序。

      关于:3: Single file bootstrapper

      冒着听起来像 InstallShield 推销员的风险,InstallShield 2009 将处理您所询问的所有问题 - 它消除了 MSI 需要引导程序的缺点。您可以使用发布向导创建一个单一的.EXE 多合一引导程序。或者,您可以创建一个非常小的网络部署设置,然后从网站下载有效负载。或者您可以将不同的功能放在单独的.CAB 文件中,用户只需部署与他要安装的功能相对应的那些CAB 文件。 InstallShield 捆绑了许多准备添加到您的安装程序的先决条件。

      根据您的情况,MSI v4.5 和 5.0 可能会对您有所帮助——它们具有对多包事务链的原生支持。当然,根据您支持的操作系统,您可能仍需要引导程序来确保提供正确级别的 MSI 支持。

      【讨论】:

      • 我不太喜欢InstallShield,但IS2009 应该能够满足您的所有要求。我正在改编最初在 IS6 中编写的安装程序,而 IS2009 极大地简化了事情。
      【解决方案4】:

      我遇到了类似的问题,我需要分发一些可选的支持软件、MSI 安装程序和另一个文件,以防 MSI 文件需要它。我基本上创建了一个本机应用程序来处理整个过程。我写了一篇关于它的博客here (http://blog.foldertrack.com/?p=45)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-27
        相关资源
        最近更新 更多