Может ли Windows MSI установить несколько пакетов? - PullRequest
1 голос
/ 15 января 2012

У меня есть код в MFC, который вызывает MsiInstallProduct(installerFullPath, commandLine);

возможно ли установить 2 продукта MSI одновременно? до тех пор, пока они оба независимы.

Можно ли вызвать функцию Windows и передать ей ВСЕ мои компоненты MSI, и она будет устанавливать их по одному?

Ответы [ 3 ]

4 голосов
/ 15 января 2012

Перед установщиком Windows 4.5 Богдан ответил правильно. Однако, поскольку с помощью установщика Windows 4.5 и более поздних версий вы можете выполнить установку из нескольких пакетов . Сделайте это, вызвав MsiBeginTransaction , некоторую комбинацию API, например MsiInstallProduct , MsiApplyPatch или MsiConfigureProduct , а затем, наконец, MsiEndTaction .

Технически они все еще не установлены точно одновременно (и это потребует вызова нескольких функций), но это делает их всех частью одной транзакции. Если все участвующие пакеты правильно созданы, все они будут установлены, исправлены или настроены (изменены или удалены) или откатятся до исходного состояния.

4 голосов
/ 15 января 2012

Установщик Windows не позволяет устанавливать несколько пакетов MSI одновременно. Вам нужно запускать установку один за другим, ожидая завершения первого, прежде чем запускать второй. Единственная возможность установить их за один вызов - это создать еще один пакет MSI, основной, в который вы добавляете два пакета как цепочки.

1 голос
/ 15 января 2012

Установка нескольких пакетов, упомянутая Майклом, является в точности поддержкой, используемой связанными пакетами, и, как он также упомянул, для этого требуется как минимум Windows Installer 4.5 на целевых машинах.

Для создания пакета MSI, в который вы добавляете два из них в виде цепочки, вы можете использовать различные инструменты создания настроек, бесплатные и коммерческие, в зависимости от времени, которое у вас есть. Вот список инструментов: http://en.wikipedia.org/wiki/List_of_installation_software

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...