msi如何检测已安装的应用程序

时间:2013-07-08 11:53:19

标签: windows-installer

我创建了一个名为“xyz.msi”的应用程序并进行了安装。现在我创建了另一个名为“abc.msi”的应用程序并尝试安装。

但我的问题是,如果已安装“xyz.msi”,那么它不应该允许安装“abc.msi”。 提前致谢

2 个答案:

答案 0 :(得分:2)

看看Upgrade table。您可以使用它来定义搜索条件以及msidbUpgradeAttributesOnlyDetect属性,以便为您的操作属性分配找到的ProductCode属性。然后,您可以在LaunchCondition table中使用您的操作属性来阻止安装。

答案 1 :(得分:1)

您问的是MSI如何检测已安装的应用程序。因为每个MSI都有一个独特的产品代码

(请参阅:http://msdn.microsoft.com/en-us/library/windows/desktop/aa370854(v=vs.85).aspx

每当您尝试安装产品时,如果产品代码匹配,它会查找产品代码,以便您重新安装或升级。如果不是,它就不会。取决于您如何创建MSI。有很多方法可以创建它,但不确定应用程序是否允许您查看属性。