Как развернуть 64-разрядный и 32-разрядный пакет установщика Windows в качестве единой установки?
Мне нужно развернуть установку программного обеспечения, ориентированную как на 64-битную, так и на 32-битную Windows. У меня есть две отдельные базы данных установщика Windows (созданные с помощью WiX) для каждой платформы, и я использую dotNetInstaller для объединения обоих в один исполняемый файл загрузчика установки.
Я в настоящее время использую версию 1.10 dotNetInstaller и установить auto_close_if_installed=True
потому что я хочу полностью скрыть загрузчик от пользователя. Тем не менее, dotNetInstaller настаивает на отображении окна индикатора выполнения порога, пока мой установщик работает, и на самом деле не закрывается автоматически. Пользователь должен подтвердить диалоговое окно, сообщающее ему, что приложение было успешно установлено. Но настоящая проблема заключается в том, что он не поддерживает Windows 8 (пока).
Обновление до более поздней версии dotNetInstaller, похоже, не работает auto_close_if_installed
так что еще хуже.
Итак, мой вопрос: каково современное состояние для развертывания обеих установок в одном исполняемом файле. Будет Wix Burn вариант?
Я знаю, что в идеальном мире я просто предоставляю своим клиентам отдельные установщики для любой платформы. Но они совершенно не знают о таких тонкостях, большинство из них даже не знают, какую платформу они используют.
2 ответа
Я бы определенно использовал Burn в этом сценарии. Что-то похожее на следующее:
<Wix>
<Bundle...>
<BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.HyperlinkLicense' />
<Chain>
<MsiPackage InstallCondition='NOT VersionNT64' SourceFile='path\to\x86.msi' />
<MsiPackage InstallCondition='VersionNT64' SourceFile='path\to\x64.msi' />
</Chain>
</Bundle>
</Wix>
Это как раз один из сценариев, для которых Burn был разработан.
Вы можете сделать это в одном Wix с помощью условий и возможностей.
<Feature Id='X86' Level='1'>
<ComponentRef Id='X86Feature1' />
<Condition Level="1">NOT VersionNT64</Condition>
</Feature>