Как установить MSI в пользовательский каталог с помощью msiexec?

Как установить MSI в пользовательский каталог с помощью msiexec?

Вот моя попытка установки .msiс помощью msiexecадминистративного PowerShell в Windows 10.

Я сделал это 7 раз для каждого из 2 дисков C:и D:(всего 14) с разными аргументами вместо ARGи одним и тем же желаемым значением пути.

Шаблон:PS C:\WINDOWS\system32> msiexec /i D:\users\username\downloads\soft\publisher\softwarename\software.msi /passive ARG="D:\Soft\publisher\softwarename"

ARGс:

  • TARGETDIR, INSTALLDIR, INSTALLPATH, INSTALLFOLDER, INSTALLLOCATION, APPLICATIONFOLDER,APPDIR
    • При запуске на том же диске, который указан в параметре: установка на этот диск в папку по умолчанию (например D:\Blender Foundation\Blender\2.81\, )
    • При запуске с другого диска: похоже, ничего не происходит

Есть ли способ обойти эту проблему?

Обновление 1

Протестировал на другом .msiпакете (Blender 2.81), потому что предыдущий был собран неправильно. Ни одно из перечисленных выше имен аргументов не помогло. Каждая установка, даже с диска, D:была в папке по умолчанию на C:.

Обновление 2

Для Blender 2.81, как, я полагаю, и для любого .msiупакованного с WiX, это было INSTALL_ROOT. Вы можете попробовать msiexec /lp! <msi_property_logfile> /i <msi_name>любой .msi, чтобы узнать имя аргумента пути установки. СпасибоYenForYangи его ответздесь.

решение1

Для правильной работы вам необходимо выполнить следующие шаги:

  1. Получите список публичных свойств, используемых в вашем .msiустановщике:
    • PS >.\YourAppInstaller.msi /lp! YourAppInstall.log;
    • Отменить установку;
  2. Найти публичные свойства в .logфайле, созданном на предыдущем шаге;
  3. Запустите свой файл .msiс публичным свойством из командной строки:
    • Если значение вашего свойства содержит пробелы, то заключите его в пару обратные кавычки+кавычки ( `")
    • Пример:PS >.\YourAppInstaller.msi YOUR_PROP=`"value with spaces`"

В случае тихой установки Blender, чтобы указать путь установки, необходимо вызвать установщик следующим образом (в качестве примера):

.\blender-3.4.1-windows-x64.msi INSTALL_ROOT=`"C:\Program Files\Blender Foundation\Blender\`"

Таким образом, он поймет, где вы хотите его установить.

Связанный контент