Подтвердить что ты не робот

Как развернуть 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?

Я знаю, что в идеальном мире я просто предоставляю своих клиентов отдельным установщикам для любой платформы. Но они вообще не знают о таких тонкостях, большинство из них даже не знают, какую платформу они используют.

4b9b3361

Ответ 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>