【问题标题】:During uninstalling upgraded product is refering the old build msi file for uninstallation在卸载升级产品期间,参考旧的构建 msi 文件进行卸载
【发布时间】:2014-03-04 06:17:00
【问题描述】:

我正在使用 InstallShield X - 专业版,版本 10.0

我已经通过 installshield Basic MSI 项目创建了 .exe 文件并安装了它。在安装过程中,它会在以下位置提取 .msi 文件:C:\Windows\Downloaded Installations{FF12DD....}*.msi

之后,我创建了另一个具有更新版本的产品,并将其安装在旧产品之上。最新的产品安装成功。更新后,当我尝试卸载它时,更新后的产品使用的是较旧的 build .msi 文件。我想要的是它应该使用最新的构建 .msi 文件。因为我对最新产品的 installScript 进行了一些更改,这些更改应该在卸载期间执行。

在更新的产品中,我只是更新产品版本号而不是产品代码。我不想修改产品代码。

谢谢,

同样的K

【问题讨论】:

    标签: installshield


    【解决方案1】:

    您需要阅读有关重大升级的信息,也许还需要阅读 Windows Installer 的一些基础知识。基本上我认为您应该尝试实施重大升级,它确实涉及更改产品代码。

    不要害怕更改产品代码升级代码用于标识产品的相关版本。产品代码在版本之间发生变化。本质上,您编写升级表以检测产品的其他版本,更新 MSI 的版本号(前三位数),并且每次重新构建 MSI 时,包代码都应始终更改。最后,您必须在不同版本之间保持升级代码相同,以使主要更新易于实施。

    Installshield 如果您在 Upgrades 视图 中创建信息,则可以避免很多复杂性。 阅读此处提供的信息,您应该能够继续。

    关于 MSI 中这些重要代码的更多信息。即使您使用 Installshield 的简化 GUI,您也必须了解这一点:

    在每次重新构建 MSI 时,您都必须更改包代码。此代码不应该在整个 MSI 设计中公开 - 它用于唯一标识文件。如果您在多个文件中保持此 guid 相同,则每个文件将被视为同一文件根据定义 - 即使它们是不同的文件。这可能会导致您在使用 MSI 时遇到的最神秘的问题。在每种情况下多次使用相同的包代码都是错误的 - 除非您想进行黑客攻击:-)。

    • 包代码:标识唯一的 MSI 文件
    • 产品代码:标识产品版本
    • 升级代码:标识产品系列

    【讨论】:

    • 我已更改产品代码和包装代码。但是,当我尝试安装最新产品时,它会将其作为单独的新产品安装,而不是更新旧产品。同样在控制面板中安装后->添加\删除程序它显示每个产品的 2 个单独条目。
    • installshield也不建议更改产品代码。
    • 您需要使主要升级正常工作,以便卸载现有安装,然后安装新安装。请仔细阅读 Installshield 的升级视图中可见的帮助。你需要的一切都在那里。产品代码在小升级(复杂且容易出错)中不会发生变化,但在大升级(这是最常用的升级类型)中会发生变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 2011-02-27
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 2011-02-16
    相关资源
    最近更新 更多