Как развернуть 64-разрядный и 32-разрядный пакет установщика Windows в качестве единой установки?
Мне нужно развернуть настройку настройки программного обеспечения как для Windows 64bit, так и для 32 бит. У меня есть две отдельные базы данных установщика Windows (созданные с WiX) для каждой платформы, и я использую dotNetInstaller, чтобы объединить оба в один исполняемый файл начальной загрузки.
В настоящее время я использую версию 1.10 для dotNetInstaller и устанавливаю auto_close_if_installed=True
, потому что хочу скопировать скрытый загрузчик с пользователя. Тем не менее, dotNetInstaller настаивает на том, чтобы показывать окно с индикатором порога, пока мой установщик работает, и на самом деле не закрывается автоматически. Пользователь должен подтвердить диалоговое окно, в котором сообщается, что приложение было успешно установлено. Но реальным нарушителем сделки является то, что он не поддерживает Windows 8 (пока).
Обновление до более поздней версии dotNetInstaller, похоже, сломается auto_close_if_installed
, поэтому это еще хуже.
Итак, мой вопрос: каково современное состояние развертывания обеих установок в одном исполняемом файле. Будет ли вариант Wix Burn?
Я знаю, что в идеальном мире я просто предоставляю своих клиентов отдельным установщикам для любой платформы. Но они вообще не знают о таких тонкостях, большинство из них даже не знают, какую платформу они используют.
Ответы
Ответ 1
Я бы определенно использовал 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.
Ответ 2
Вы можете сделать это в одном Wix через Условия и функции.
<Feature Id='X86' Level='1'>
<ComponentRef Id='X86Feature1' />
<Condition Level="1">NOT VersionNT64</Condition>
</Feature>