1

我使用一个名为 MSICREATE 的程序为一个软件生成 msi 包。然后我使用 orca 来转换 msi 包。一切正常,但用户必须在安装更新之前删除现有产品。我想修改 msi 包,以便安装程序识别正在安装的更新或不同版本并删除当前版本,然后安装新的 msi 包。

需要哪些属性表条目?

=========

下面给出的答案帮助我摆脱了最初的问题,我感谢 Ciprian 的帮助。我的主要升级 msi 现在删除了现有产品但没有完全重新安装产品。我的产品包含一些文本文件、一个帮助文件和一个 .exe 文件。.exe 文件未重新安装。

不管它值多少钱,我在下面添加了答案,总结了我使用 orce 添加到我的 msi 中的内容。

4

2 回答 2

2

我不知道 MSICREATE 如何处理升级方案。但是,您可以使用 ORCA 实现此目的。是来自 MSDN 的详细升级示例。

长话短说,您的两个软件包都必须共享UpgradeCode。此外,您必须在第二个包的升级表中创建一个条目。

于 2012-02-07T15:15:09.310 回答
0

以下是我使用 orca 添加到我的 msi 以实现重大升级的内容。正如我上面所说,我仍然有一个问题,即我的 .exe 文件在重大升级时没有重新安装。如果进行修复,则会添加 .exe。

安装执行序列表

  • 添加了序列为 400 的 FindRelatedProducts
  • 添加了序列为 1450 的 RemoveExistingProducts

安装UI序列表

  • 添加了序列为 200 的 FindRelatedProducts

属性表

  • 添加 RemovePreviousVersions TRUE
  • 添加了 SECRECUSTOMPROPERTIES SOLARUPGRADE
  • 有一个由 MSICREATE 创建的带有 guid 的现有 UpgradeCode
  • 有一个现有的 ProductVersion 12.2.12.0 创建了我的 MSICREATE

添加了升级表

  • UpgradeCode 与属性表中的 Upgrade 值相同
  • 版本最小值 null
  • 最大版本 99.12.31
  • 属性 1
  • ActionProperty SOLARUPGRADE(与属性表中的 SECURECUSTOMPROPERTIES 值相同)

我还分配了一个新的 PackageCode 和一个新的 ProductCode,因此新的 msi 的 PackageCode、ProductCode 和 ProductVersion 的值与以前安装的产品不同。

于 2012-02-13T18:26:06.237 回答