У меня была почти такая же проблема только сейчас. Если у вас есть GUID кода обновления, вы можете сделать это:
WindowsInstaller.Installer installer =
Activator.CreateInstance(/* left as an exercise for the reader */);
foreach (string productCode in installer.get_RelatedProducts("your-upgradecode-guid")) {
string productVersion = installer.get_ProductInfo(productCode, "VersionString");
}
Проблема в том, что может быть несколько сопутствующих товаров, так что, как вы справляетесь, зависит только от вас.
РЕДАКТИРОВАТЬ: Если вы устанавливаете для пользователя по умолчанию или по ошибке, вы можете не получить код продукта с RelatedProducts, если вы выполняете запрос от имени другого пользователя, для которого был установлен MSI ... даже если установка была более или менее публично.