Один из способов сделать это - создать настраиваемое действие в вашем установщике. В настраиваемом действии вы можете указать CustomActionData "/ Path =" [TARGETDIR] * ". В своем коде настраиваемого действия вы можете сослаться на Context.Parameters [" Path "] и получить путь установки, переданный из установщика в код .NET.
Теперь, когда у вас есть [TARGETDIR] в вашем коде настраиваемого действия, вы можете продолжать использовать пространство имен Microsoft.Win32 для установки ключа реестра.
HTH - Wil