我在使用 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 的安装路径。当然,我可以为 App1 提供新的 ProductCode,但每次更新 App2 版本时我都会被迫这样做。此外,旧版本的 App1 将无法找到新版本的 App2,因为它不知道新的 ProductCode。
所以我需要更多“持久”的方法来找到 App2 的安装路径。我认为 Visual Studio 设置和部署项目的 UpgradeCode 值永远不会改变,除非开发人员出于某种原因自己更改它。但是我在注册表中找不到任何 UpgradeCode 的踪迹。
有谁知道升级代码保存在哪里?或者当我们知道 UpgradeCode 存在时找到实际 ProductCode 的方法?也许有人有更好的方法来查找应用程序的安装路径?提前致谢。