У меня есть приложение Bootstrap набора инструментов Wix, которое отлично работает, обеспечивая установку моей программы и необходимую dll устройства. Когда он запущен, может потребоваться некоторое время, чтобы распаковать dll устройства, первый объект, и запустить его. Похоже, что пакет Bootstrap не работает, когда мы это знаем.
Есть ли способ показать конечному пользователю статус того, что он запущен?
Как показать извлекаемые файлы или процент извлечения завершен?
Мой Bootstrap ниже.
<?xml version = "1.0" encoding = "UTF-8"?>
<Wix xmlns = "http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal = "http://schemas.microsoft.com/wix/BalExtension">
<!--DO NOT TOUCH THE UpgradeCode!!!!!-->
<Bundle Name = "My Programm Installer" Version = "1.2.0.0" Manufacturer = "My, Co." UpgradeCode = "xxxxxx-xxx-x--x-x--xxx">
<BootstrapperApplicationRef Id = "WixStandardBootstrapperApplication.RtfLicense" >
<bal:WixStandardBootstrapperApplication
LicenseFile = "My License Agreement.rtf"
ShowVersion = "yes"
LogoFile = "My Logo1.png"/>
</BootstrapperApplicationRef>
<Chain>
<!-- TODO: Define the list of chained packages. -->
<!-- <MsiPackage SourceFile = "path\to\your.msi" /> -->
<PackageGroupRef Id = "DeviceDll"/>
<PackageGroupRef Id = "MyProgram"/>
</Chain>
</Bundle>
<Fragment>
<PackageGroup Id = "DeviceDll">
<ExePackage Id = "DeviceDll"
Cache = "yes"
Compressed = "yes"
PerMachine = "yes"
Permanent = "yes"
Vital = "no"
SourceFile = "DeviceDll_Setup.exe" />
</PackageGroup>
<PackageGroup Id = "MyProgram">
<MsiPackage Id = "MyProgram"
Cache = "yes"
Compressed = "yes"
Permanent = "no"
Vital = "yes"
SourceFile = "MyProgram.msi"/>
</PackageGroup>
</Fragment>
</Wix>Редактировать Я использую Visual Studio 2017 с установленным Wix Toolset, и я использую v3 Bootstrap Project. Я использовал v3 вместо v4, так как смог найти пример, который дал мне рабочий Bootstrap.
@BobArnson, мне удалось захватить журнал пакета. Похоже, на «Создание точки восстановления системы» уходит много времени. Меня беспокоит не время, которое на это требуется, это дисплей, который долгое время ничего не делает. Я хотел бы просто показать, что он что-то делает, например направлять сообщения журнала на дисплей, чтобы конечный пользователь мог видеть, что пакет что-то делает.
@Bluto Может быть, посмотрите мой комментарий к Арсону ниже. Кажется, есть аналогичная проблема с WiX.





WixStandardBootstrapperApplication показывает Initializing... в то время, как все различные "запускающие" вещи происходят до того, как будут установлены отдельные пакеты. Запись не выявляет событие для создания точки восстановления системы.
Боб, не на 100% совпадающий с вопросом OP, но отчасти связанный: MSIFASTINSTALL работает, чтобы подавить точку восстановления для автономных файлов MSI. Я предполагаю, что пакет WiX сам делает точку восстановления, поэтому не помогает установить MSIFASTINSTALL для каждого MSI, чтобы предотвратить точку восстановления системы? Я вижу только Проблема 4626 в проблемах WiX, связанных с восстановлением системы.
Хорошо, значит, пакет устанавливает это для всех настроек MSI, если в самой настройке не указано значение для MSIFASTINSTALL, определенное в таблице свойств или связанном преобразовании?
@BobArnson, я не получаю сообщение Initializing ..., отображаемое в моем пакете при установке. Было бы неплохо, если бы я это сделал.
@ SteinÅsmul, он устанавливается во время сборки, поэтому преобразования не учитываются.
@Bluto, опубликуйте снимок экрана. Строка присутствует, если вы не переопределили строку loc.
@BobArnson, извините, я ошибаюсь. Он показывает Initializing ..., но иногда он будет оставаться там до 10 минут до начала установки.
Итак, Initializing ... отображается, пока происходят различные "запуски". Предоставляет ли набор инструментов Burn доступ к строкам регистрации? Можно ли перенаправить эти строки на дисплей?
@Bluto, нет, это корень проблемы, о которой Штейн упоминал ранее.
Хорошо. Так что сейчас я больше ничего не могу сделать, пока не внесу изменения в набор инструментов.
Пакеты не являются самораспаковывающимися исполняемыми файлами. Проверьте журнал пакета, чтобы узнать, что происходит, когда происходит пауза.