Тихая установка пакета MSI

84

У меня есть пакет MSI, который мне нужно установить, если пакет еще не установлен. Также мне нужно установить его в автоматическом режиме. Пакет запрашивает у пользователя:

  • Место установки (C: \ Program Files \ Foobar)
  • Тип установки: минимальная и полная (минимальная)

Мне нужно переопределить эти два параметра, используя параметры командной строки или какой-либо другой метод. Итак, как мне решить эти две проблемы. Я буду использовать VBScript для написания сценариев.

Салман А
источник

Ответы:

130

У вас должна быть возможность использовать параметры /quietили /qnс msiexecдля выполнения автоматической установки.

Пакеты MSI экспортируют общедоступные свойства, которые можно установить с помощью PROPERTY=valueсинтаксиса в конце msiexecпараметров.

Например, эта команда устанавливает пакет без пользовательского интерфейса и без перезагрузки, с журналом и двумя свойствами:

msiexec /i c:\path\to\package.msi /quiet /qn /norestart /log c:\path\to\install.log PROPERTY1=value1 PROPERTY2=value2

Вы можете прочитать параметры msiexec, просто запустив его без параметров из Пуск -> Выполнить.

Полиномиальный
источник
6
Есть ли способ найти список приемлемых параметров ( PROPERTY1и PROPERTY2в вашем примере)?
Salman A
Вот список предопределенных свойств: msdn.microsoft.com/en-us/library/windows/desktop/… Свойство папки установки отличается для каждого средства разработки установки. Что вы использовали для создания MSI?
cosmin
@Cosmin: MSI состоит из динамических библиотек DLL платежной системы (не мной). Я смотрю на инструмент под названием Ocra для анализа MSI, он дал мне подсказку о переменной под названием «INSTALLLOCATION». Я проверяю.
Salman A
7
Примечание: msiexec казался довольно разборчивым в указании полного пути к файлу MSI-пакета. Не пытайтесь заниматься этим .\mypackage.msiделом. Мне потребовалось немного времени, чтобы понять это.
Фил
4
Название продукта MS на самом деле Orca, а не ocra. Может быть сложно погуглить с орфографической ошибкой. Вы можете получить много креольских рецептов ... но не от разработчиков MSI. msdn.microsoft.com/en-us/library/aa370557(v=vs.85).aspx
Скотт Лундберг
12

Правильный способ установки MSI без вывода сообщений - через msiexec.exe command lineследующее:

msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log"

Быстрое объяснение:

 /L*V "C:\Temp\msilog.log"= verbose logging
 /QN = run completely silently
 /i = run install sequence 

Здесь есть гораздо более исчерпывающий ответ: Пакетный сценарий для установки MSI . Этот ответ содержит подробную информацию о параметрах командной строки msiexec.exe и описание того, как найти «общедоступные свойства» , которые можно установить в командной строке во время установки. Эти свойства обычно различны для каждого MSI.

Штайн Осмуль
источник