¿Cómo instalar la característica basada en la propiedad establecida en la acción personalizada?

Estoy tratando de instalar una de las dos características en función del valor que debe establecerse dentro de la acción personalizada.
En primer lugar, establezco el valor de una propiedad:

UINT __stdcall ConfigurationCheckAction(MSIHANDLE hInstall)
{
    HRESULT hr = S_OK;
    UINT er = ERROR_INSTALL_FAILURE;

    hr = WcaInitialize(hInstall, "ConfigurationCheckAction"); 
    if (condition) {
         MsiSetProperty( hInstall, TEXT("STREAM"), TEXT("RED") );
    }
    else {
         MsiSetProperty( hInstall, TEXT("STREAM"), TEXT("BLUE") );
    } 
    return WcaFinalize(er);
}

En segundo lugar, hago dos condiciones por dos características:

<Feature Id='Complete' Level='1'>
     <Feature Id="Red" ConfigurableDirectory="TARGETDIR" Title="F1" Level="0">
     <Condition Level="1">STREAM</Condition>
     </Feature>
     <Feature Id="Blue" ConfigurableDirectory="TARGETDIR" Title="F2" Level="0">
     <Condition Level="1">NOT STREAM</Condition>
     </Feature>
</Feature>

Tenga en cuenta que no defino la propiedad dentro del archivo wxs anteriormente, ya que me gustaría establecerlo desde la acción personalizada.

Se llama a mi acción personalizada antes de que InstallInitialize and Execute sea inmediata.

Del registro de instalación tengo confirmación de que la propiedad está configurada. Sin embargo, mi instalación condicional no funciona, ya que parece que lo que está en la condición siempre se evalúa como falso.

Traté de evaluar las condiciones: STREAM, STREAM = RED, STREAM = "RED", <! [CDATA [STREAM = RED]]>

Me estoy quedando sin ideas sobre qué hacer y agradecería ayuda.

Respuestas a la pregunta(3)

Su respuesta a la pregunta