Interesting thing is that if you proceed the installation will be made into the correct directory.
Nevertheless it is the problem. Apparently setting INSTALLDIR property is not enough (I just learned it). It has to be done either in UI or Execute sequence and the decisions on which one to use cannot be done at compile time. Thus in order to seamlessly use absolute path for all UI levels WiX multiple conditional custom action trigger need to be created. WiX becoming quite ugly for such a simple task. But hey, that is why Wix# was developed.
The problem is addressed in the latest release: https://wixsharp.codeplex.com/releases/view/610910. Alternatively you can get the fix from NuGet.
No changes in you Wix# script is required.
Nevertheless it is the problem. Apparently setting INSTALLDIR property is not enough (I just learned it). It has to be done either in UI or Execute sequence and the decisions on which one to use cannot be done at compile time. Thus in order to seamlessly use absolute path for all UI levels WiX multiple conditional custom action trigger need to be created. WiX becoming quite ugly for such a simple task. But hey, that is why Wix# was developed.
<CustomActionId="Set_INSTALLDIR_AbsolutePath"Property="INSTALLDIR"Value="C:\My Company\My Product"/><InstallExecuteSequence><CustomAction="Set_INSTALLDIR_AbsolutePath"Before="CostFinalize">(NOT Installed) AND (UILevel < 5)</Custom></InstallExecuteSequence><InstallUISequence><CustomAction="Set_INSTALLDIR_AbsolutePath"Before="CostFinalize">(NOT Installed) AND (UILevel = 5)</Custom></InstallUISequence>
No changes in you Wix# script is required.