Make WiX installation set upgrade to the same folder

You don't really need to separate RegistryKey from RegistryValue in a simple case like this. Also, using HKMU instead of HKLM takes care of it whether you're doing a machine or user install.

<RegistryValue
  Root="HKMU"
  Key="Software\[Manufacturer]\[ProductName]"
  Name="InstallDir"
  Type="string"
  Value="[INSTALLDIR]"
  KeyPath="yes" />

There's an example in the WiX tutorial: https://www.firegiant.com/wix/tutorial/getting-started/where-to-install/

<Property Id="INSTALLDIR">
  <RegistrySearch Id='AcmeFoobarRegistry' Type='raw'
    Root='HKLM' Key='Software\Acme\Foobar 1.0' Name='InstallDir' />
</Property>

Of course, you've got to set the registry key as part of the install too. Stick this inside a component that's part of the original install:

<RegistryKey
         Key="Software\Software\Acme\Foobar 1.0"
         Root="HKLM">
  <RegistryValue Id="FoobarRegInstallDir"
             Type="string"
             Name="InstallDir"
             Value="[INSTALLDIR]" />
</RegistryKey> 

'Registry' is deprecated. Now that part of code should look like this:

<RegistryKey Id="FoobarRegRoot"
             Action="createAndRemoveOnUninstall"
             Key="Software\Software\Acme\Foobar 1.0"
             Root="HKLM">
  <RegistryValue Id="FoobarRegInstallDir"
                 Type="string"
                 Name="InstallDir"
                 Value="[INSTALLDIR]" />
</RegistryKey>