As I can see the problem is in the fact that the registry entry is removed on uninstall triggered by update. Have a look at "Persisting AppInfo" sample it shows how to prevent regvalue from removal (both native and managed approach).
The fragment from the sample:
The fragment from the sample:
new RegValue(RegistryHive.LocalMachine, @"Software\My Company\My Product", "InstallationDirectory", "[INSTALLDIR]") { AttributesDefinition = "Component:Permanent=yes" }