【问题标题】:Can I delete 2 product codes "the old verision product code and new product code" in the uninstall automation command-line using MSI?我可以在使用 MSI 的卸载自动化命令行中删除 2 个产品代码“旧版本产品代码和新产品代码”吗?
【发布时间】:2021-12-31 23:39:04
【问题描述】:

我正在尝试创建一个包,我的任务是在安装新版本的同时自动卸载旧版本。

我已经找到了旧产品代码的GUID,并把它写成:

msiexec /x {old-product-key} /qb

现在我还想包含新的产品代码,也可以在软件中心安静地卸载它。

那么卸载新代码的命令行又是什么?

msiexec /x "newfilename.msi" {old-product-key} /qb

【问题讨论】:

  • 应该是:msiexec /x {new-product-code} /qb
  • 所以我把它放在命令行中,它会像我在软件中心也可以卸载它一样卸载旧的产品代码吗?
  • 如果我错了,请纠正我。您有两个 MSI 安装,应该用新的替换。如果是,那么您可以像主要更新一样卸载旧版本。为此,只需将旧产品的UpgradeCodes 添加到Upgrade 表中,并确保您的ExecuteInstallationSequence 包含FindRelatedProductsRemoveExistingProducts 操作。检查RemoveExistingProducts 操作的可能位置 (docs.microsoft.com/en-us/windows/win32/msi/…)
  • 谢谢 Vadim,让我试试这个。
  • 感谢@Vadim!现在我能够了解有关升级代码的信息。我想深入研究。现在可以了!

标签: installation windows-installer uninstallation


【解决方案1】:

重大升级:是的,你需要一个major upgrade 来做这个。请阅读简短的第一段。简而言之:重大升级实际上是安装新应用程序版本并卸载旧版本 - 可能有不同的卸载计划(卸载旧版本并安装新版本,或安装新版本并卸载旧版本)。它通常用于交付同一应用程序的新版本。例如版本 2 高于版本 1。相关产品和版本通常通过共享升级代码检测。 On upgrade codes, packages codes and product codes.

WiX 实施:您可能正在使用不同的工具。然而,关于 WiX:以前使用 Upgrade elements 进行重大升级,但现在有一种更简单的方法可以使用 @987654334 使用“合理的默认值”进行正常的重大升级@

基本示例:非常简单的普通 WiX MSI,具有基本 GUI 和进行重大升级所需的结构:https://github.com/glytzhkof/WiXDefaultDialogsSample - 上一级更多 WiX 示例。


链接:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多