实际问题:我们第一次安装产品时,我们可以在控制面板中看到3个程序,1个主(A)和2个链接(B,C)。可以说,我们现在将 B 更新为新版本。此版本更新已为 B 分配了新的 ProductCode。但新的产品代码未在 master(A) 中更新,这破坏了链式包层次结构。由于 master(A) 在其 IsChainedPackage 表中没有新的 ProductCode,因此在卸载 A 的同时无法卸载 C&B。
我正在尝试从注册表中获取值并将其分配给 MSI 的“IsChainPackage”表中的列之一。
我发现我可以创建自定义操作并为公共财产分配价值。但我无法在 IsChainPackage 表的 ProductCode 列中找到如何使用此属性。我正在寻找一种解决方案,我可以在其中更新 Media->Releases->Pckg1/Pckg2 行下的 ProductCode 字段,并使用注册表中存在的值。可能吗?
或者,当产品(比如 A)开始卸载时,我可以使用 ProductCode 卸载不同的产品(比如 B)吗?我的意思是,当我们单击卸载 A 时,首先我要卸载 B,然后是 A。我可以通过一些自定义操作来完成吗?如果是,我需要在该自定义操作中进行哪些设置?