在卸载期间,升级产品引用旧的构建msi文件进行卸载

时间:2014-03-04 06:17:01

标签: installshield

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

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

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

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

谢谢,

Sameer K

1 个答案:

答案 0 :(得分:0)

您需要阅读主要升级以及Windows Installer的一些基础知识。基本上我认为你应该尝试实施主要升级,它确实涉及更改产品代码。

不要害怕更改产品代码升级代码用于标识产品的相关版本。产品代码在不同版本之间变化。基本上,您创建升级表以检测产品的其他版本,更新MSI的版本号(前三位数),并且每次重建MSI时应始终更改包代码。最后,您必须在各版本中保持升级代码相同,以便轻松实现主要更新。

如果您创建升级视图中的信息,

Installshield 可以解决许多复杂问题。 阅读此处提供的信息,您应该可以继续。

This is Installshield's Upgrades view. Read the information provided and you should be able to proceed.

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

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

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