Crear una variable de entorno en el instalador de WIX utilizando el comando set /P de cmd.
Tengo un instalador XML (WIX).
Estoy intentando crear una variable de entorno usando el comando “set /P” en WIX de la siguiente manera:
<setproperty id="InstallationPathProf2019" value=""[SystemFolder]cmd.exe" /C set /P TESTPATH=<[TempFolder]fileA.txt" before="InstallationPathProf2019" sequence="execute">NOT REMOVE="ALL"</setproperty>
<customaction id="InstallationPathProf2019" binarykey="WixCA" dllentry="WixQuietExec" execute="deferred" impersonate="no"></customaction>
<installexecutesequence>
<custom action="InstallationPathProf2019" after="InstallInitialize">NOT REMOVE="ALL"</custom>
</installexecutesequence>
Desafortunadamente, la variable de entorno TESTPATH no se crea después de ejecutar el instalador.
¿Podría indicar por qué sucede esto?
PD:
Cuando realizo lo mismo directamente en cmd, funciona y se crea la variable de entorno TESTPATH:
línea de comandos en CMD
¡Espero que alguien pueda ayudar! ¡Gracias de antemano!
davy.ai
El problema podría estar con la forma en que se está pasando el comando a través del instalador WIX. Es posible que las comillas no se estén escapando o pasando correctamente.
Una solución podría ser utilizar el elemento “Property” en lugar de “SetProperty” y pasar el comando como un valor directamente. Por ejemplo:
Esto establecerá la propiedad “TESTPATH” con el valor del comando y ejecutará la acción personalizada de inmediato.
Otra solución podría ser intentar escapar las comillas utilizando la entidad HTML “””. Por ejemplo:
En general, puede ser necesario realizar pruebas adicionales y depuración para determinar la causa raíz del problema.