Многочисленные поиски привели меня к тому, что я нашел несколько описаний того, как создать загрузочный msi, но все эти решения предполагают, что msi является локальным или стандартным компонентом Windows. Есть ли способ сделать msi, который загружает установщик (который также является msi) с обычным кодом MSI или Wix, а не заставлять загрузчик выполнять для этого какую-то неродную программу?
Начальная загрузка MSI: внешние URL-адреса
Ответы (4)
Мой опыт работы с msi показал, что невозможно запустить 2 одновременно. (хотя может и ошибся)
В итоге я вместо этого создал исполняемый файл установщика с помощью Inno Setup (http://www.jrsoftware.org) и ISTool (http://www.istool.org), который загружает и устанавливает различные msi. С ISTool это очень легко сделать.
Я знаю, что он не такой шикарный или сексуальный, как Wix, но мне он очень понравился.
Я бы создал пользовательское действие, которое запускается в файле InstallUISequence. Это при необходимости загрузит MSI (в исходную папку), а затем попытается запустить его как вложенную установку.
Windows предотвращает одновременное выполнение двух установок в InstallExecuteSequence
, поэтому, если вы ищете решение для автоматической установки с загрузчиком, вы SOL.
Однако вы можете запустить другую установку из последовательности пользовательского интерфейса, что, вероятно, является приемлемым решением, если вы сообщаете своим клиентам, что сначала должны быть установлены некоторые другие зависимости, если они собираются развертывать с помощью групповой политики или какой-то другой "тихий" метод.
Если это поможет, я уверен, что вы также можете вызвать MSIEXEC с URL-адресом, например. msiexec.exe /i http://some.domain/blah.msi /passive
Я бы посоветовал вам написать собственное приложение и запустить первый msi, а затем запустить второй msi. Я написал блог о том, как это сделать. Вот ссылка (http://blog.foldertrack.com/?p=45)