【问题标题】:InstallShield 2014 Run a custom action based on whether or not a dependency is installedInstallShield 2014 根据是否安装依赖项运行自定义操作
【发布时间】:2015-01-17 22:21:47
【问题描述】:

我公司的一个产品需要 QuickTime。我们的安装程序(使用 InstallShield 制作)目前会尝试自动安装 QuickTime。不幸的是,如果安装的 QuickTime 版本比我们打包的版本更新,则会出现同样多的错误。通常,这会给我们的用户带来一点不便,但如果他们在这种情况下运行静默安装,安装程序就会失败。

我可以只更新我们打包的 QuickTime 版本,这样人们就更有可能不会遇到这个问题(我们很可能会这样做),但这仍然是真正问题的临时解决方法。真正需要发生的是安装程序应该检查是否已经安装了 QuickTime,如果是,则完全跳过尝试安装 QuickTime。

我已经研究了“先决条件”和“自定义操作”,但我还没有找到任何可以让我完成此任务的方法。我找对地方了吗?如果是这样,我错过了什么?如果没有,还有其他方法可以做到这一点吗?


在尝试使用先决条件时,我寻找了一个似乎可以使用的注册表项,但似乎 QuickTime 不使用注册表项来简单地声明其当前版本(至少我找不到)。因此,尽管它远非理想,但我尝试根据文件QuickTimePlayer.exe 是否存在于[ProgramFiles]QuickTime\ 中来运行先决条件。我没有收到任何错误输出,但是在没有安装 QuickTime 的测试机器上,先决条件没有运行。

【问题讨论】:

    标签: installshield


    【解决方案1】:

    如何选择是否尝试安装 QuickTime?

    先决条件旨在检测是否存在某些东西,如果不存在,则安装它。先决条件通过它们的条件检测某些东西的存在,通常是寻找一个已知的注册表项或带有版本信息的文件,并与他们将安装的版本进行比较。如果它丢失或降低,请安装它;如果它等于或更高,请跳过它。但是您必须使用先决条件编辑器来告诉先决条件要查找的内容。

    【讨论】:

    • 我确实使用了先决条件编辑器(请参阅我的 OP 中添加的描述),但它默默地失败了。
    猜你喜欢
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    相关资源
    最近更新 更多