Mi instalador, creado con WiX se localiza a través de archivos .wxl. Es posible en WiX especificar varias culturas y se llamará a light.exe varias veces, creando un instalador para cada idioma (esto está disponible mientras se construye el instalador desde Visual Studio).¿Es posible localizar el EULA en WiX usando el archivo .wxl?
Todo el archivo de obras, excepto el EULA. Se define en .wxs archivo a través de
<WixVariable Id='WixUILicenseRtf' Value='en.rtf' />
Y no sé una buena manera de cambiar este valor del archivo de localización .wxl. Usando
<WixVariable Id='WixUILicenseRtf' Value='!(loc.EulaFile)' />
<String Id='EulaFile'>en.rtf</String>
no está funcionando, SICE archivos .wxl se utilizan durante el enlace y .wxs se compila delante de ellos, por lo que el compilador no puede encontrar !(loc.EulaFile)
. Buscando foros, he encontrado dos soluciones. Lo primero es crear un cuadro de diálogo de licencia personalizado para cada idioma, parece funcionar, pero es una forma muy difícil y el código fuente de bloating es mucho. La segunda forma es soltar la construcción de Visual Studio/Votive y llamar a light.exe varias veces, especificando diferentes archivos de licencia cada vez mediante la tecla de línea de comandos -d.
¿Hay alguna manera de resolver este problema y usar archivos EULA localizados para que el proyecto se pueda construir en VisualStudio + Voltive sin necesidad de copiar y pegar muchos diálogos? Localizar instaladores es un problema muy común, entonces ¿existe alguna solución que no sepa?
no se puede hacer funcionar en WiX 3.7. ¿Se ha eliminado el soporte de localización del elemento de texto desde WiX 3.0? – ivan
@ivan Está funcionando bien para mí con WiX 3.7. – RenniePet
El usuario @kadorken, en una edición sugerida, señaló lo siguiente: "Asegúrese de colocar las directivas de publicación del parche DESPUÉS de su directiva UIRef ID =" WixUI_InstallDir "para que sean eficaces." – RenniePet