Installa MSI con msiexec in una directory specifica
Domanda
Voglio installare un MSI con MSIEXEC in una directory specifica. Sto usando:
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /qb
Non funziona con "InstallDir", perché MSI si sta installando nel percorso predefinito e non nel mio percorso specifico.
Soluzione
Usa targetdir invece di installdir. Si noti che i segni di preventivo per la proprietà TargetDir sono solo attorno al percorso nel caso degli spazi.
msiexec /i "msi percorso" targetdir = "c: myfolder" /qb
Altri suggerimenti
InstallShield 12
INSTALLDIR
Rappresenta la directory di installazione del prodotto principale per un'installazione normale di Windows Installer (o InstalScript MSI), come l'utente finale che avvia setup.exe o il tuo database .msi.
TARGETDIR
Rappresenta la directory di installazione per un'installazione InstalScript o per un'installazione basata su Windows Installer amministrativa (quando l'utente esegue Setup.exe o MSiexec.exe con l'interruttore della riga di comando /A).
In un progetto MSI InstalScript, la variabile InstalScript MSI_TARGETDIR
memorizza l'obiettivo di un'installazione amministrativa.
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /q
Solo questa variante ha funzionato bene.
Utilizzare l'installazione. Quando si hanno problemi, utilizzare il log.txt /lv per scaricare i registri verbosi. I registri ti direbbero se esiste una modifica della proprietà che sovrascriverebbe le tue opzioni. Se hai già installato il prodotto, una seconda esecuzione potrebbe semplicemente aggiornarlo senza modificare la posizione di installazione. Dovrai prima disinstallare (utilizzare l'opzione /x).
Questo dovrebbe funzionare:
msiexec /i "msi path" TARGETDIR="C:\myfolder" /qb
In realtà, entrambi INSTALLPATH/TARGETDIR
sono corretti. Dipende da come MSI elabora questo.
Creo un MSG utilizzando wixToolSet
. Nel file WXS, esiste un nodo "directory", che root dir forse piace il seguente:
<Directory Id="**TARGETDIR**" Name="SourceDir">;
Come potete vedere: Id
è quello che dovresti usare.
Nel mio caso tutti loro non hanno funzionato e finalmente lo era
msiexec /i "msinamebla.msi" INSTALLFOLDER="C:\test\" /qb
Ho controllato il log.txt come descritto da Ezzadeen e ho trovato "installfolder" lì dentro.
Per il mio MSI, ho dovuto impostare DefaultPathc = "D: MyFolder" perché più avanti nel processo di installazione, sia InstallDir che TargetDir sono stati ripristinati per riflettere il valore in DefaultAthc
Questo ha funzionato anche per me
msiexec /i "msi path" INSTALLDIR="D:\myfolder" /q
Avevo provato altre due iterazioni ed entrambe installate nei file C: Programmi predefiniti
InstallDir = "D: MyFolder" /Q ha installato sull'altra unità.
Usa ApplicationFolder = "Path" per l'ultimo msiexec
Se hai usato Advanced Installer
Per costruire il tuo .msi che vorrai usare APPDIR=