从UpgradeCode查找应用程序安装路径

时间:2013-03-28 19:50:14

标签: visual-studio-2010 windows-installer setup-project

使用Visual Studio 2010安装和部署项目,我面临着一点“不便”。假设我有2个应用程序:App1和App2。这两个应用程序都有单独的MSi安装包,可以安装到不同的位置。 App1需要知道App2的安装位置。以前我给App1提供了App2安装包的“ProductCode”值。这样,App1可以找到App2的安装路径,在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall中的“ProductCode”键中查找适当的值。

现在我更新了App2安装包的版本,Visual Studio敦促我更改ProductCode。它已被更改,现在App1无法成功使用以前的ProductCode来查找App2的安装路径。我可以将新的ProductCode提供给App1,但每次App2版本更新时我都会被迫这样做。此外,旧版本的App1将无法找到新版本的App2,因为新的ProductCode将是未知的。

所以我需要更多“持久”方法来查找App2安装路径。我认为Visual Studio设置和部署项目的UpgradeCode值永远不会改变,除非开发人员出于某种原因自行更改它。但我在注册表中找不到任何UpgradeCode的踪迹。

有人知道UpgradeCodes的保存位置吗?或者当我们知道UpgradeCode存在时,可能找到实际的ProductCode的方法?也许有人有更好的方法来查找应用程序的安装路径? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用MsiEnumRelatedProducts功能枚举与升级代码匹配的产品。