【问题标题】:writing a custom setup.exe suite installer编写自定义 setup.exe 套件安装程序
【发布时间】:2012-08-24 14:36:39
【问题描述】:

我的任务是创建一个安装程序来处理和安装多个 .msi 文件。我几乎走上了 InstallShield 路线,但您需要 Premier 版才能创建套件安装,并且说您支付了将近 3000 英镑甚至不能让您完全自定义 UI。

对于我们的上一个版本,我编写了一个自定义的 Setup.exe 文件,该文件在存储它的同一文件夹中查找我们希望安装的 msi 文件,然后静默安装每个文件。虽然它很基础,但我们现在需要更专业的东西。

目前我有两个主要选择:

  • 使用 WiX - 这是免费的,而且似乎提供了很多可定制性。我还不太清楚它到底能做什么,还需要一点时间来学习。

  • 我可以扩展已有的内容并构建自己的安装程序,允许用户选择他们想要安装和不想要安装的功能/组件。如果我可以让安装程序从服务器下载所需的 msi 文件,安装它们,然后删除它们,我会更喜欢这个。我只是不想在主安装程序下载中包含一个单独的文件夹,里面装满了 msi 文件。如果没有太多的努力,这可能吗?另外,使用它可以将单个程序添加到“添加/删除程序”菜单吗?

欢迎任何想法:)

【问题讨论】:

  • 我很想听听更多关于您希望从 InstallShield 获得哪些进一步的 UI 定制的信息。其中一些可能是可能的,但我们仍在努力填补许多空白。

标签: installation windows-installer suite


【解决方案1】:

我建议您查看 WiX 3.6 中的刻录功能。您可以创建一个引导程序,它能够从服务器下载您的安装包。您可以完全自定义它或使用标准引导程序应用程序。您也可以使用当前的 .msis。您不必将所有 .msis 转换为 WiX 即可使用引导程序功能。

我建议阅读 Rob Mensching 的 this blog post

【讨论】:

    【解决方案2】:

    轻松程度取决于您的设置有多复杂、相互依赖关系及其先决条件。

    例如,您想安装产品 X,但它需要安装数据库服务器,需要升级 .net 框架,需要重新启动..

    Wix 用于创建 msi,因此只有在您想创建一个可以管理多个应用程序安装的 msi 时它才会有所帮助。

    【讨论】:

    • WiX 3.6 的主要功能是 Burn,它是一个引导程序/链接程序。
    • MSI 的 不能(技术上或正确地)处理多个 MSI 的安装,因为 WindowsInstaller 中存在互斥锁。
    • 他们可以处理 msm,这实际上是同一件事,但两者都不是为这种选择而设计的。
    • Wix 的主要特点是,它不是 Wise 这样的二进制垃圾工具给你的。一旦你有了一个 xml 文件,写一些东西来玩弄它,只是一个问题,你想用这个功能集有多疯狂。
    【解决方案3】:

    WiX 3.6 仍是一个测试项目,Burn 仍在进行中。说实话,InstallShield Suite 安装程序是相当新的,并且仍在进行中。

    在您对 InstallShield 的成本感到震惊之前,您需要准确地确定 setup.exe 需要能够做什么。然后,您需要对 InstallShield 和 WiX 之间的功能差距进行分析,并提出自己的人工估算,在 WiX 中进行并在 InstallShield 中进行。

    在某些情况下,现成的工具还不够成熟,因此推出自己的工具是有意义的。 (想想 MS SQL Server、Office、Visual Studio),但对于大多数业务线应用程序,您可能只需要选择最接近您需要的工具。

    【讨论】:

    • 我不是对你投了反对票吗,但我不得不说,一旦你离开(或者更重要的是必须去)这些工具的舒适区之一,他们就会转向陷入一场噩梦。编写自己的安装程序与现成的 IMO 相比,临界点是这种(或更可能是那些)场景的可能性。
    • 我真的不能同意。我以编写安装程序为生已经 16 年了,并且几乎使用了所有的工具。当然,InstallShield 确实有它的缺点......但现实是大多数人遇到问题,因为他们不费心去学习底层的 Windows Installer(它也有它的缺点)。最终抽象会泄漏,事情会失败,如果你不完全理解它是如何工作的,你会在黑暗中尝试修复它。
    • 总而言之,当您真正了解这些内容时,您会惊讶于 InstallShield 这样的工具的价值。例如,我可以在几个小时内完成复杂的安装,例如多实例 n-Tier asp.net / sql server 安装以及完整的配置设置 UI 体验。我做了很多咨询,我的劳动力估计通常是同龄人的 1/10。
    • 不敲你的游戏伙伴。如果我可以将安装问题转交给其他人,没有人会比我更开心。 :(
    • 我的意思是大多数进行安装的人并不专注于它,也不想这样做。然后,当工具运行不顺利时,他们会责怪工具。
    【解决方案4】:

    对于需要比您自己的自定义 setup.exe 更专业一些的东西,学习曲线比 WiX 和 Burn 少,并且比 InstallShield 对钱包的痛苦少 - 我建议 MSI Factory ,不适用于 MSI Factory(虽然它会加快您的 WiX 学习速度),但适用于包含的引导程序。

    学习曲线比 Burn 短,并且有 90 天的试用期,因此您可以看看它是否适合您。

    InstallShield 可让您自定义安装界面,并以高昂的价格获得支持和维护(非常在您从头开始升级时非常有用)。

    您通过 InstallShield 节省的前期成本,您将在使用 WiX 的时间方面进行投资 - 因此您确实需要进行成本/收益分析并计算出您的时间值多少钱。当您真正开始了解 Windows Installer 及其底层内容时,InstallShield 与 WiX 一样强大。许多商业开发人员会根据各自的项目要求使用两者中的元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多