I'm faced with little "inconvenience" using Visual Studio 2010 setup and deployment projects. Let's say I have 2 applications: App1 and App2. Both applications have separate MSi installation packages and can be installed to different locations. App1 need to know where App2 is installed. Previously I was provide App1 with "ProductCode" value of installation package of App2. This way App1 could find installation path of App2 looking for appropriate value in "ProductCode" key in the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall.
Now I was updated the version of App2 installation package and Visual Studio urged me to change the ProductCode. It was changed and now App1 can't successfully use previous ProductCode to find installation path of App2. Of corse I can give new ProductCode to the App1 but I will be forced to do this each time when App2 version updated. Also old version of App1 will be unable to find new version of App2 because new ProductCode will be unknown for it.
So I need more "persistent" method to find App2 installation path. I think of UpgradeCode value of Visual Studio setup and deployment project which is never changes unless developer will change it himself for some reason. But I couldn't find any trails of UpgradeCode in the registry.
Is anyone know where UpgradeCodes are saved? Or probably the way to find actual ProductCode when we know UpgradeCode exist? Maybe someone have a better method of finding installation paths of applications? Thanks in advance.