2011-06-10 15 views
13

Estoy construyendo un instalador MSI con WiX y estoy usando el WixUI_Advanced. La definición de mi ApplicationFolder se ve así, siguiendo los consejos de otra respuesta SO (WiX tricks and tips).Pasar variables de línea de comando a Windows Installer basado en WiXx MSI

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="$(var.PlatformProgramFilesFolder)"> 
     <Directory Id="APPLICATIONFOLDER" Name="$(var.InstallName)"> 

Ahora queremos dar al usuario la opción de hacer una instalación silenciosa y pasar el nombre ApplicationFolder en el camino, ya sea en relación con la carpeta de archivos de programa apropiado o absoluta.

Sé que puedo pasar los valores de las propiedades públicas en la línea de comandos de msiexec,, pero ¿cómo lo uso como valor para ApplicationFolder y cómo configuro esto para las rutas absolutas vs relativas.

Respuesta

17

Usted acaba de definir la propiedad en la línea de comandos al ejecutar msiexec:

msiexec /i product.msi APPLICATIONFOLDER="C:\Program Files\Company\Product\" 

Los archivos se instalarán en: directorio "C \ Archivos de programa \ compañía \".

Te aconsejo usar ruta absoluta aquí. Una ruta relativa puede conducir a resultados inesperados.

+0

Esto funciona cuando hago una instalación/quiet, pero cuando hago una instalación interactiva y presiono el botón avanzado en la pantalla de licencia, no veo mi CARPETA DE APLICACIÓN especificada en el cuadro de diálogo de selección de directorio. Espero/quiero que aparezca allí también. –

+2

@Jeroen ya veo. Puedo sugerir usar el registro detallado de MSI para encontrar por qué se modifica el valor de APPLICATIONFOLDER y dónde. Ejecute su paquete como 'msiexec/i package.msi/lv * x log.txt APPLICATIONFOLDER =" C: \ Archivos de programa \ Compañía \ Producto \ "'. Luego busque en el registro 'APLICACIÓN DE CARPETAS', verá cuando se modifique. (Lo siento, me tomó un tiempo) –

Cuestiones relacionadas