链接的msi/Bootstrapper/先决条件? [英] chained msi's/Bootstrapper/prerequisite?

查看:117
本文介绍了链接的msi/Bootstrapper/先决条件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a few component MSI packages that need to installed together to form the end application.

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

The problem is: the components that make up the package can be updated and the component relaunched on the http file server. What approach should I take?

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

The installer that I am writing is the 'master' installer. Which needs to be able to read what version of each component is installed on their client machine in order to perform an upgrade only on that one component.

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

Also if the application is installed for the first time the installer will download and install all required components.

我正在使用Installshield 2009.

I am using Installshield 2009.

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

I have looked into chained MSI's but the master installer is empty. as it needs to be as lightweight as possible.

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

I have no idea how to write a bootstrapper application and my company prefers that I use installshield to write the installer.

我已经进行了研究-显然,先决条件并不意味着要卸载.

I have researched - and apparently pre-requisites are not meant to be uninstalled.

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

I believe that I can do a minor update by changing the version numbers and thus allowing the download to only download the component it requires and not download the entire installer - currently I am implementing the way that you have suggested (sascha) and my company will be using the FLEXnet connect service offered through InstallShield. The 'components' that I mentioned (a term our developers love to use) is similar in concept to InstallShield's concept of components. However I have modified the 'components' to be encapsulated by a feature so that way when the release is built I can select that each 'feature' is wrapped in a cab file.

这听起来真令人困惑-甚至对我来说.

This sounds so confusing - even to me.

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

I have resorted to features < components (including services)

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

My company refuses to let me use any other installer program with the exception of Installshield. My guess is that in order to update the prerequisite requirements in the distant future a new installer needs to be written and the application re-released as a major upgrade. which makes sense to me.

Perermtate,我不认为有一种方法可以卸载预先安装的先决条件,这很有意义,因为在所有先决条件"都应作为第三方组件之后,可能需要将该先决条件作为其他应用程序的平台到应用程序.

Perermtate, I don't think there is a way to uninstall a prerequisite that was prior installed which makes sense as the prerequisite may be required as a platform for other applications, after all 'prerequisites' were meant to be 3rd party components to the application.

感谢您的所有答复!

推荐答案

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

I've looked at similar problems, and I sympathize because there are no easy answers that I know of. If I understand correctly, you basically want a setup.exe that will detect the current versions of the pre-requisites on the target system, install them if they're missing, and upgrade them if they're out of date.

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

A couple of options that I`ve used in the past are:

  1. Microsoft的通用Boostrapper .我以前曾经用过,而且很喜欢.缺点是,如果您的必备条件不是预定义的条件之一,则必须编写自己的boostrapper清单.尽管有一个工具可以帮助您,但编写清单可能会有些棘手且耗时. .另外,如果msi无法升级,我也找不到卸载已安装组件的方法(我遇到了其他问题).如果您知道了,让我知道!

  1. Microsoft's Generic Boostrapper. I've used this before, and rather like it. The downsides are that if you'll have to write your own boostrapper manifest if you're prerequisite isn't one of the predefined ones. Writing manifests can be a little tricky, and time-consuming, though there is a tool that helps. Also, I haven't been able to find a way to uninstall an installed component if the msi can`t do an upgrade (something else I've run into). If you figure it out let me know!

编写您自己的增强程序/链接器.我开始使用 Microsoft. NET Framework Setup.exe引导程序示例.它带有源代码,因此您在组件部署方面具有很大的灵活性.但是,这里的代码是C ++,检查先决条件和发出正确的安装命令的逻辑很棘手,而且很难正确执行.

Write your own boostrapper/chainer. I started with the Microsoft .NET Framework Setup.exe Bootstrapper Sample. It comes with source code so you have a lot of flexibility in how your components get deployed. Here however, the code is C++ and the logic for checking pre-requisites and issuing the proper install commands is tricky and hard to get right.

更新:据我所写(2009年8月),它尚未准备好,但Wix项目正在开发它自己的名为

Update: as a I write this (August 2009) it's not ready yet but the Wix project is working on it's own bootstapper/chaniner called Burn which for those of us that love Wix looks very promising.

这篇关于链接的msi/Bootstrapper/先决条件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆