![Как установить MSI в пользовательский каталог с помощью msiexec?](https://rvso.com/image/1615286/%D0%9A%D0%B0%D0%BA%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20MSI%20%D0%B2%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20msiexec%3F.png)
Вот моя попытка установки .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
Для правильной работы вам необходимо выполнить следующие шаги:
- Получите список публичных свойств, используемых в вашем
.msi
установщике:PS >.\YourAppInstaller.msi /lp! YourAppInstall.log
;- Отменить установку;
- Найти публичные свойства в
.log
файле, созданном на предыдущем шаге; - Запустите свой файл
.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\`"
Таким образом, он поймет, где вы хотите его установить.