【问题标题】:Detect MSI Installed Features By MSI Upgrade Code通过 MSI 升级代码检测 MSI 安装的功能
【发布时间】:2013-09-17 05:43:57
【问题描述】:

我需要检测计算机上当前安装了 MSI 软件包的哪些功能,但我只知道 MSI 升级代码 guid。 任何想法如何做到这一点的好方法?

谢谢, 马雷克

【问题讨论】:

    标签: windows-installer installshield


    【解决方案1】:

    如果您只是从同一安装的先前版本迁移功能状态,您可以通过编写升级表来做到这一点 - 填写您的升级代码和版本范围,然后将属性设置为“771”,它将复制在不删除其他安装的情况下覆盖功能状态。

    如果您需要在不相关的应用程序中执行此操作,可以使用 Automation Interface 执行此操作 - 使用 MsiEnumRelatedProducts 调用从升级代码中获取产品代码,然后将该产品代码与 MsiEnumFeatures 一起使用以获取列表特征,然后用 MsiQueryFeatureState 读取特征状态。

    【讨论】:

    • 非常感谢!我创建了另一个关于如何通过在 C++ 中使用自动化接口来实现这一点的问题。我无法在互联网上找到任何合理的教程。 *.com/questions/18850008/…