用于启用更新版本的 MSI 包属性表条目

发布于 2025-01-03 11:20:21 字数 363 浏览 1 评论 0原文

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

需要哪些属性表条目?

=========

下面给出的答案帮助我解决了原来的问题,我感谢 Ciprian 的帮助。我的主要升级 msi 现在会删除现有产品,但不会完全重新安装该产品。我的产品由一些文本文件、一个帮助文件和一个 .exe 文件组成。 .exe 文件不会重新安装。

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

I use a program called MSICREATE to generate msi packages for a piece of software. I then use orca to transform the msi package. Things work ok but users must delete the existing product before installing an update. I'd like to modify the msi package so the installer recognizes a newer or different version is being installed and removes the current version and then installs the new msi package.

What property table entries are needed?

=========

The answer given below has helped me get beyond my original problem and I thank Ciprian for his help. My major upgrade msi now deletes the existing product BUT does not completely re-install the product. My product consists of some text files, a help file, and a .exe file. The .exe file is not re-installed.

For whatever it's worth, I added answer below which summarizes what I added to my msi using orce.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟─花易冷 2025-01-10 11:20:21

我不知道 MSICREATE 如何处理升级场景。不过,您可以使用 ORCA 来实现这一点。 这里是详细升级示例来自 MSDN。

长话短说,您的两个软件包必须共享 升级代码。此外,您还必须在 第二个包的升级表

I don't know how MSICREATE handles the upgrade scenario. However you could achieve this using ORCA. Here is a detailed upgrade example from MSDN.

Long story short both your packages must share the UpgradeCode. Also you must author an entry in the Upgrade table of the second package.

荒路情人 2025-01-10 11:20:21

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

InstallExecuteSequence 表

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

InstallUISequence 表

  • 添加了 FindRelatedProducts,序列为 200

PropertyTable

  • 添加了 RemovePreviousVersions TRUE
  • 添加了 SURECUSTOMPROPERTIES SOLARUPGRADE
  • 具有由 MSICREATE 创建的带有 GUID 的现有 UpgradeCode
  • 具有现有 ProductVersion 12.2.12.0 创建了我的 MSICREATE

添加了升级表

  • UpgradeCode 与属性表中的 Upgrade 值相同
  • VersionMin null
  • VersionMax 99.12.31
  • 属性 1
  • ActionProperty SOLARUPGRADE(与中的 SECURECUSTOMPROPERTIES 值相同)
    属性表)

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

Here are the things I added to my msi using orca to effect a major upgrade. As I said above I still have a problem in that my .exe file is not reinstalled on a major upgrade. The .exe is added if one does a repair.

InstallExecuteSequence Table

  • added FindRelatedProducts with sequence 400
  • added RemoveExistingProducts with sequence 1450

InstallUISequence Table

  • added FindRelatedProducts with sequence 200

PropertyTable

  • added RemovePreviousVersions TRUE
  • added SECURECUSTOMPROPERTIES SOLARUPGRADE
  • had a existing UpgradeCode with guid created by MSICREATE
  • had a existing ProductVersion 12.2.12.0 created my MSICREATE

Added a Upgrade Table

  • UpgradeCode same value as Upgrade in Property Table
  • VersionMin null
  • VersionMax 99.12.31
  • Attributes 1
  • ActionProperty SOLARUPGRADE (same value as SECURECUSTOMPROPERTIES in
    Property Table)

I also assigned a new PackageCode and a new ProductCode so the new msi had different values of PackageCode, ProductCode, and ProductVersion than the previously installed product.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文