windows-installer - 链接的msi/Bootstrapper/先决条件?

标签 windows-installer installshield bootstrapper prerequisites chained

我有一些组件MSI软件包,需要一起安装才能形成最终应用程序。

问题是:组成软件包的组件可以被更新,并且该组件可以在http文件服务器上重新启动。我应该采取什么方法?

我正在编写的安装程序是“主”安装程序。为了仅在该组件上执行升级,哪个组件必须能够读取其客户端计算机上安装的每个组件的版本。

同样,如果是首次安装该应用程序,则安装程序将下载并安装所有必需的组件。

我正在使用Installshield 2009。

我研究了链接的MSI,但主安装程序为空。因为它需要尽可能轻巧。

我不知道如何编写 bootstrap ,我的公司更喜欢使用installshield来编写安装程序。

我已经研究过-显然前提条件并非要被卸载。

我相信我可以通过更改版本号进行较小的更新,从而允许下载内容仅下载所需的组件,而不下载整个安装程序-目前,我正在实现您建议的方式(sascha),我的公司将使用通过InstallShield提供的FLEXnet连接服务。我提到的“组件”(我们的开发人员喜欢使用的术语)在概念上与InstallShield的组件概念相似。但是,我已经修改了“组件”以使用功能进行封装,以便在构建发行版时可以选择将每个“功能”包装在cab文件中。

这听起来很困惑-甚至对我来说。

我诉诸功能<组件(包括服务)

我公司拒绝让我使用除Installshield之外的任何其他安装程序。我的猜测是,为了在不久的将来更新先决条件,需要编写新的安装程序,然后将应用程序作为主要升级版本重新发布。这对我来说很有意义。

Perermtate,我认为没有一种方法可以卸载预先安装的先决条件,因为在所有“先决条件”都应作为该应用程序的第三方组件之后,因为该先决条件可能需要作为其他应用程序的平台,因此该方法是有意义的。

感谢您的所有回复!

最佳答案

我研究过类似的问题,并且我很同情,因为我不知道有简单的答案。如果我理解正确,那么您基本上需要一个setup.exe,它将检测目标系统上必备组件的当前版本,如果缺少这些组件,则进行安装,如果它们过时,则对其进行升级。

我过去使用过的几个选项是:

  • 微软的Generic Boostrapper。我以前曾经用过,而且很喜欢。缺点是,如果您的必备条件不是预定义的条件之一,则必须编写自己的boostrapper list 。尽管有一个tool可以帮助您,但编写 list 可能会有些棘手且耗时。另外,如果msi无法升级,我也找不到卸载已安装组件的方法(我遇到了其他问题)。如果您知道了,让我知道!
  • 编写您自己的boosterapper/chainer。我从Microsoft .NET Framework Setup.exe Bootstrapper Sample开始。它带有源代码,因此您在组件部署方面具有很大的灵活性。但是,这里的代码是C++,检查先决条件和发出正确的安装命令的逻辑很棘手,而且很难正确执行。

  • 更新:我写这篇文章(2009年8月)时尚未准备好,但是Wix项目正在开发它自己的名为Burn的 bootstrap /向导,对于我们中那些热爱Wix的人来说,这是非常有前途的。

    关于windows-installer - 链接的msi/Bootstrapper/先决条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/294961/

    相关文章:

    c++ - 在 C++ 中以编程方式修复 Windows 中的程序 - 也许以某种方式通过 WinAPI?

    wix - 如何使用 Wix Bundle 卸载以前的版本并安装最新版本

    installation - 安装 Bootstrap 如何检测是否安装了先决条件?

    Installshield-卸载不会删除服务

    c++ - 通过组策略安装 VC++ 可再发行组件的最佳方法是什么?

    WiX - 通过检查修订防止降级

    c# - 如何在 Web 安装项目中创建新的应用程序池?

    WiX:如何防止将绑定(bind)文件的多个副本添加到 MSI?

    c# - 如何在 Visual Studio 2012 C# 中使用 InstallShield LE 注册类型库文件 (.tlb)

    installation - InstallShield,更新被修改的文件