Reputation: 585
I want to install an MSI file with msiexec into a specific directory. I am using:
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /qb
Using "INSTALLDIR" is not working properly because the MSI is installed into the default path and not into the specified path.
Upvotes: 56
Views: 205065
Reputation: 1063
The property depends on the software used to author the setup.
When you have problems, use the command-line argument /lv log.txt
to dump verbose logs. The logs would tell you if there is a property change that would override your own options.
If you already installed the product, then a second run might just update it without changing the install location. You will have to uninstall first (use the /x option).
Another property used is INSTALLLOCATION
.
Upvotes: 16
Reputation: 464
Here's my attempt to install .msi
using msiexec
in Administrative PowerShell.
I've made it 7 times for each of 2 drives, C:
and D:
(14 total) with different arguments in place of ARG
and the same desirable path value.
Template: PS C:\WINDOWS\system32> msiexec /a D:\users\username\downloads\soft\publisher\softwarename\software.msi /passive ARG="D:\Soft\publisher\softwarename"
ARG
s:
TARGETDIR
ProgramFilesFolder
(with an additional folders similar to the
default installation path, e.g.
D:\Soft\BlenderFoundation\Blender\ProgramFilesFolder\Blender Foundation\Blender\2.81\
) and a copy of the .msi
at the target
folder.INSTALLDIR
, INSTALLPATH
, INSTALLFOLDER
, INSTALLLOCATION
, APPLICATIONFOLDER
, APPDIR
D:\Blender Foundation\Blender\2.81\
)You may try ARPINSTALLLOCATION
(docs).
Upvotes: 0
Reputation: 3565
Use TARGETDIR
instead of INSTALLDIR. Note that the quote marks for TARGETDIR property are only around the path in the case of spaces.
msiexec /i "msi path" TARGETDIR="C:\myfolder" /qb
Source: https://learn.microsoft.com/en-us/windows/win32/msi/targetdir
Upvotes: 57
Reputation: 365
I tried TARGETDIR
, INSTALLLOCATION
and INSTALLDIR
args and still it installed in the default directory.
So I viewed the log and there is this arg where it sets the Application Directory and it is being set to default.
MSI (s) (50:94) [09:03:13:374]: Running product '{BDAFD18D-0395-4E72-B295-1EA66A7B80CF}' with elevated privileges: Product is assigned.
MSI (s) (50:94) [09:03:13:374]: PROPERTY CHANGE: Adding APPDIR property. Its value is 'E:\RMP2'.
MSI (s) (50:94) [09:03:13:374]: PROPERTY CHANGE: Adding CURRENTDIRECTORY property. Its value is 'C:\Users\Administrator'.
So I changed the command to have APPDIR
instead of the args mentioned above. It worked like a charm.
msiexec /i "path_to_msi" APPDIR="path_to_installation_dir" /q
Add /lv
if you want to copy the installation progress to a logfile.
Upvotes: 1
Reputation: 201
InstallShield 12
INSTALLDIR
represents the main product installation directory for a regular Windows Installer–based (or InstallScript MSI) installation, such as the end user launching Setup.exe or your .msi database.
TARGETDIR
represents the installation directory for an InstallScript installation, or for an administrative Windows Installer based installation (when the user runs Setup.exe or MsiExec.exe with the /a command-line switch).In an InstallScript MSI project, the InstallScript variable
MSI_TARGETDIR
stores the target of an administrative installation.
Source: INSTALLDIR vs. TARGETDIR
Upvotes: 18
Reputation: 733
In my case all of them did not work and finally it was
msiexec /i "msinamebla.msi" INSTALLFOLDER="C:\test\" /qb
I checked the log.txt as described by ezzadeen and found "INSTALLFOLDER" in there.
Upvotes: 9
Reputation: 11
This one worked for me too
msiexec /i "msi path" INSTALLDIR="D:\myfolder" /q
I had tried two other iterations and both installed in the default C:\Program Files
INSTALLDIR="D:\myfolder" /q got it installed on the other drive.
Upvotes: 1
Reputation: 1621
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /q
Only this variant worked well.
Upvotes: 11
Reputation: 1
If you've used Advanced Installer
to build your .msi you will want to use APPDIR=
Upvotes: 0
Reputation: 63
for my msi, I had to set DEFAULTPATHC="D:\myfolder" because later in the installation process, both INSTALLDIR and TARGETDIR were reset to reflect the value in DEFAULTPATHC
Upvotes: 1
Reputation: 41
Actually, both INSTALLPATH/TARGETDIR
are correct. It depends on how MSI processes this.
I create a MSG using wixToolSet
. In WXS file, there is "Directory" Node, which root dir maybe like the following:
<Directory Id="**TARGETDIR**" Name="SourceDir">;
As you can see: Id
is which you should use.
Upvotes: 4
Reputation: 769
This should work:
msiexec /i "msi path" TARGETDIR="C:\myfolder" /qb
Upvotes: 3