Je veux installer un msi avec msiexec dans un répertoire spécifique. J'utilise:
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /qb
Il ne fonctionne pas avec "INSTALLDIR", car msi est installé dans le chemin par défaut et non dans mon chemin spécifique.
Utilisez TARGETDIR au lieu de INSTALLDIR. Notez que les guillemets pour la propriété TARGETDIR sont uniquement autour du chemin d'accès dans le cas d'espaces.
msiexec/i "chemin msi" TARGETDIR = "C:\mon dossier"/qb
InstallShield 12
INSTALLDIR
représente le répertoire d'installation principal du produit pour une installation standard basée sur Windows Installer (ou InstallScript MSI), telle que l'utilisateur final qui lance Setup.exe ou votre base de données .msi.
TARGETDIR
représente le répertoire d'installation pour une installation InstallScript ou pour une installation administrative basée sur Windows Installer (lorsque l'utilisateur exécute Setup.exe ou MsiExec.exe avec le commutateur de ligne de commande/a).
Dans un projet InstallScript MSI, la variable InstallScript MSI_TARGETDIR
enregistre la cible d'une installation administrative.
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /q
Seule cette variante a bien fonctionné.
En fait, les deux INSTALLPATH/TARGETDIR
sont corrects. Cela dépend de la façon dont MSI traite cela.
Je crée un MSG en utilisant wixToolSet
. Dans le fichier WXS, il y a un nœud "Répertoire", le répertoire racine pouvant ressembler à ceci:
<Directory Id="**TARGETDIR**" Name="SourceDir">;
Comme vous pouvez le constater: Id
est ce que vous devez utiliser.
Cela devrait fonctionner:
msiexec /i "msi path" TARGETDIR="C:\myfolder" /qb
Utilisez INSTALLLOCATION. Lorsque vous rencontrez des problèmes, utilisez le fichier/lv log.txt pour vider les journaux détaillés. Les journaux vous indiqueraient si une modification de propriété annulait vos propres options . Si vous avez déjà installé le produit, une deuxième exécution peut simplement le mettre à jour sans modifier l'emplacement d'installation. Vous devrez d'abord désinstaller (utilisez l'option/x).
Celui-ci a fonctionné pour moi aussi
msiexec /i "msi path" INSTALLDIR="D:\myfolder" /q
J'avais essayé deux autres itérations et les deux installées dans la configuration par défaut C:\Program Files
INSTALLDIR = "D:\myfolder"/q l'a installé sur l'autre lecteur.
Dans mon cas, ils ne travaillaient pas tous et finalement
msiexec /i "msinamebla.msi" INSTALLFOLDER="C:\test\" /qb
J'ai vérifié le log.txt comme décrit par ezzadeen et trouvé "INSTALLFOLDER" dedans.
pour mon msi, je devais définir DEFAULTPATHC = "D:\myfolder" car plus tard dans le processus d'installation, INSTALLDIR et TARGETDIR étaient réinitialisés pour refléter la valeur dans DEFAULTPATHC
Si vous avez utilisé Advanced Installer
pour construire votre .msi, vous voudrez utiliser APPDIR=