wix bootstrapper

Я написал управляемый загрузчик wix с использованием WPF. Фактические этапы установки требуют объединения нескольких msi 's / ех»и пакетные файлы.


 
 
 

Во время выполнения каждого пакета должно отображаться сообщение (предпочтительно из пользовательского интерфейса загрузчика), указывающее, какой пакет / пакетный файл msi / exe выполняется в настоящее время. Короче говоря, в загрузчике необходим ProgressText. Как это сделать?

Другой вопрос: я не хочу, чтобы все MSI 's быть упакованным в исполняемый файл начальной загрузки. Это происходит потому, что: каждый раз, когда изменяется msi, мы хотели бы отправлять только обновленную / модифицированную msi, а не весь загрузчик exe. Есть ли способ сделать это?

Ответы на вопрос(1)

Два ответа, одно предложение:

Чтобы получить сообщения обратно во время установки MsiPackages, обработайтеBootstrapperCore.ExecuteMsiMessage событие. Аргументы событий там будут содержать Сообщение, которое содержит данные, которые вы ищете.

Чтобы настроить сжатие пакетов или нет, используйтеCompress приписывать. Вы можете либо отметить весьBundle/@Compress='no' или отметьте каждую упаковкуCompress='no' (или же'yes' если вы хотите пойти по этому пути).

-

Предложение: Обязательно добавьте DetectCondition к ExePackages, чтобы Burn знал, есть ли уже ExePackages или нет.

 microsoftprogrammer08 мар. 2013 г., 08:48
В продолжение моих комментариев выше ... Я думаю, мне, возможно, придется сохранить сообщение как запись реестра и извлечь его в событии ExecutePackageComplete. Есть ли другой способ сделать это?
 Rob Mensching08 мар. 2013 г., 09:52
Ваш исполняемый файл может реализовать "встроенный протокол записи " отправлять сообщения о прогрессе и ошибках. Это н'т вообще документированы, так что выМне нужно пройти через Burn-код, чтобы увидеть протокол, но этоs там и получит вам именно то, что вы хотите. "bundlerunner» .csproj в исходном коде WiX также может быть полезным.
 microsoftprogrammer07 мар. 2013 г., 12:56
Спасибо, Роб. Оба вышеупомянутых предложения служат моей цели очень хорошо. Я'Хотелось бы узнать, возможно ли передать сообщение из моего ExecPackage обратно в загрузчик? Ситуация такая: у меня есть несколько командных файлов для выполнения, и я 'Я делаю это с помощью ExecPackage. Основываясь на некоторых результатах в партии, яЯ хотел бы отобразить соответствующее сообщение обратно пользователю и представить параметры для продолжения / прерывания / перезапуска и т. д.

Ваш ответ на вопрос