Instale MSI con MSIEXEC en un directorio específico
Pregunta
Quiero instalar un MSI con MSIEXEC en un directorio específico. Estoy usando:
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /qb
No funciona con el "InstallDir", porque el MSI se está instalando en la ruta predeterminada y no en mi ruta específica.
Solución
Use TargetDir en lugar de InstallDir. Tenga en cuenta que las marcas de cotización para la propiedad TargetDir están solo alrededor de la ruta en el caso de los espacios.
MSIEXEC /I "MSI Path" TargetDir = "C: MyFolder" /QB
Otros consejos
InstallShield 12
INSTALLDIR
Representa el directorio de instalación del producto principal para una instalación regular de instalación de Windows (o InstallScript MSI), como el usuario final que inicia Setup.exe o su base de datos .msi.
TARGETDIR
Representa el directorio de instalación para una instalación de InstallScript, o para una instalación administrativa basada en el instalación de Windows (cuando el usuario ejecuta setup.exe o msiexec.exe con el conmutador de línea de comandos /a).
En un proyecto MSI InstallScript, la variable InstallScript MSI_TARGETDIR
almacena el objetivo de una instalación administrativa.
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /q
Solo esta variante funcionó bien.
Use InstallLocation. Cuando tenga problemas, use /lv log.txt para volcar los registros detallados. Los registros le dirían si hay un cambio de propiedad que anule sus propias opciones. Si ya instaló el producto, una segunda ejecución podría actualizarlo sin cambiar la ubicación de instalación. Tendrá que desinstalar primero (use la opción /x).
Esto debería funcionar:
msiexec /i "msi path" TARGETDIR="C:\myfolder" /qb
En realidad, ambos INSTALLPATH/TARGETDIR
son correctos. Depende de cómo MSI procese esto.
Creo un mensaje usando wixToolSet
. En el archivo WXS, hay un nodo "Directorio", que Root Dir tal vez como el siguiente:
<Directory Id="**TARGETDIR**" Name="SourceDir">;
Como puedes ver: Id
es lo que debes usar.
En mi caso, todos ellos no funcionaron y finalmente fue
msiexec /i "msinamebla.msi" INSTALLFOLDER="C:\test\" /qb
Revisé el log.txt según lo descrito por Ezzadeen y encontré "InstallFolder" allí.
Para mi MSI, tuve que establecer defaultPathc = "d: myfolder" porque más adelante en el proceso de instalación, tanto InstallDIR como TargetDir se restablecieron para reflejar el valor en defaultPathcccccc.
Este también funcionó para mí
msiexec /i "msi path" INSTALLDIR="D:\myfolder" /q
Había probado otras dos iteraciones y ambas instaladas en los archivos de programa C: predeterminados
InstallDir = "d: myfolder" /Q obtuvo instalado en la otra unidad.
Use ApplicationFolder = "ruta" para el último msiexec
Si has usado Advanced Installer
Para construir su .msi querrá usar APPDIR=