【问题标题】:How to do major upgrade conditionally in installshield如何在 installshield 中有条件地进行重大升级
【发布时间】:2012-09-10 02:26:42
【问题描述】:

这是我的场景:

我需要能够让同一产品的不同版本在我的机器上共存。所以,我需要一个不同的产品密钥。酷,没问题。问题是,我还希望只有在用户尝试安装到我的产品已安装到的同一位置时才可以选择进行重大升级。

所以基本上,我需要能够在用户选择他们想要安装到的位置之后启动“重大升级”模式。

我该怎么做?

【问题讨论】:

    标签: installation windows-installer installshield uninstallation installscript


    【解决方案1】:

    我知道一种方法可以按照您的描述进行,但我不确定它是否是您想要的。

    您可能想要的是多实例安装程序。请查看以下文章,看看它是否描述了您正在寻找的体验:

    InstallShield 2009 Beta Part I ( Multiple Instances )

    【讨论】:

    • 我们已经在使用它——但我们希望在用户已经选择“新实例”时提示卸载。我知道,傻吧?但我实际上(认为)我想出了如何去做。我编写了一些托管代码来从其文件位置获取产品 ID,我将使用 UninstallApplication() 静默卸载它。
    • 看看临时表。您可以使用自定义操作将行动态发送到 Upgrade 表中,以让 FindRelatedProducts / RemoveExistingProducts 为您完成繁重的工作并仍然支持回滚。
    • 不错。这就是我一直在寻找的东西。无论如何,我现在会接受你的回答,但添加你的最后一条评论,因为这最终会成为我选择的路线。
    • 一开始我不想给出这么复杂的设计作为答案。通常,如果可以使用更简单更常用的方法,我会改用它。我有一个客户在这些方面做了一些非常奇怪的事情,我正在重新设计机器,构建列表框,然后根据业务规则动态地参与或不参与主要升级。真的很奇怪的东西,它很适合他们想要的东西,但我个人认为它是过度设计的。但是,嘿,客户永远是对的
    • 大声笑,是的,我现在有点在同一条船上。除了你可以在上周中旬之前把它扔进去,我从来没有接触过 installshield。无论如何感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多