在特定目录中使用msiexec安装msi

时间:2012-01-12 18:04:29

标签: path install msiexec

我想在特定目录中安装带有msiexec的msi。我正在使用:

msiexec /i "msi path" INSTALLDIR="C:\myfolder" /qb

它不能与“INSTALLDIR”一起使用,因为msi是在默认路径中安装而不是在我的特定路径中。

13 个答案:

答案 0 :(得分:41)

使用TARGETDIR代替INSTALLDIR。请注意,TARGETDIR属性的引号仅在空格的情况下围绕路径。

  

msiexec / i“msi path”TARGETDIR =“C:\ myfolder”/ qb

答案 1 :(得分:14)

InstallShield 12

INSTALLDIR表示常规基于Windows Installer(或InstallScript MSI)安装的主要产品安装目录,例如最终用户启动Setup.exe或.msi数据库。

TARGETDIR表示InstallScript安装的安装目录,或基于管理Windows Installer的安装(当用户使用/ a命令行开关运行Setup.exe或MsiExec.exe时)。

在InstallScript MSI项目中,InstallScript变量MSI_TARGETDIR存储管理安装的目标。

答案 2 :(得分:6)

msiexec /i "msi path" INSTALLDIR="C:\myfolder" /q

只有这种变体运作良好。

答案 3 :(得分:3)

这应该有效:

msiexec /i "msi path" TARGETDIR="C:\myfolder" /qb

答案 4 :(得分:3)

实际上,INSTALLPATH/TARGETDIR都是正确的。这取决于MSI如何处理这个问题。

我使用wixToolSet创建了一个MSG。在WXS文件中,有“目录”节点,其根目录可能如下所示:

<Directory Id="**TARGETDIR**" Name="SourceDir">;

如您所见:Id是您应该使用的。

答案 5 :(得分:3)

使用INSTALLLOCATION。 遇到问题时,请使用/ lv log.txt转储详细日志。日志会告诉您是否存在会覆盖您自己的选项的属性更改。 如果您已经安装了产品,那么第二次运行可能只是更新它而不更改安装位置。您必须先卸载(使用/ x选项)。

答案 6 :(得分:2)

在我的情况下,所有这些都不起作用,最后它是

msiexec /i "msinamebla.msi" INSTALLFOLDER="C:\test\" /qb

我按照ezzadeen的描述检查了log.txt,并在那里找到了“INSTALLFOLDER”。

答案 7 :(得分:1)

这个也适合我

 <?php
   setlocale(LC_TIME, 'es_ES');
   echo strftime("%A");
 ?>

我曾尝试过两次其他迭代,并且都默认安装 C:\ Program Files

INSTALLDIR =“D:\ myfolder”/ q将它安装在另一个驱动器上。

答案 8 :(得分:1)

对于我的msi,我必须设置DEFAULTPATHC =“​​D:\ myfolder”,因为在安装过程的后期,INSTALLDIR和TARGETDIR都被重置以反映DEFAULTPATHC中的值

答案 9 :(得分:1)

使用APPLICATIONFOLDER =“ path”获取最新的msiexec

答案 10 :(得分:0)

如果您已经使用Advanced Installer来构建.msi,则需要使用APPDIR=

答案 11 :(得分:0)

这是我尝试在管理PowerShell中使用.msi安装msiexec

我已经为两个驱动器C:D:(共14个)中的每一个做了7次,用不同的参数代替了ARG,并且具有相同的期望路径值。 / p>

模板: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(带有与 默认安装路径,例如 D:\Soft\BlenderFoundation\Blender\ProgramFilesFolder\Blender Foundation\Blender\2.81\)和目标位置.msi的副本 文件夹。
  • INSTALLDIRINSTALLPATHINSTALLFOLDERINSTALLLOCATIONAPPLICATIONFOLDERAPPDIR
    • 在与同一驱动器上运行时 在参数中设置:安装在该驱动器上的默认文件夹中 (例如D:\Blender Foundation\Blender\2.81\
    • 从 differentnet驱动器:似乎无能为力

答案 12 :(得分:0)

我尝试了ERROR: C:\Users\ASUS\Desktop\AndroidSDK\platforms\android-29\android.jar (The system cannot find the file specified) TARGETDIRINSTALLLOCATION args,但仍将其安装在默认目录中。 因此,我查看了日志,并在此arg中设置了应用程序目录,并将其设置为默认值。

INSTALLDIR

因此,我将命令更改为具有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'. 而不是上面提到的args。它像一种魅力。

APPDIR

如果要将安装进度复制到日志文件,请添加msiexec /i "path_to_msi" APPDIR="path_to_installation_dir" /q