Запустите x86 или x64 MSI из загрузчика MSBuild - PullRequest
8 голосов
/ 02 октября 2009

Итак, у меня есть MSI на основе WiX, который устанавливает несколько драйверов устройств, и, следовательно, у меня есть версия x64 и x86. Пакет также имеет зависимость .NET 3.5, поэтому я создаю загрузчик для этого, а затем запускаю MSI. Мой вопрос: знает ли кто-нибудь о способе создания загрузчика, который будет определять платформу, на которой он работает, и запускать соответствующий MSI. Я нашел в поисках такого решения и пока ничего не нашел. Спасибо!

Ответы [ 3 ]

3 голосов
/ 18 марта 2013

К сожалению, для установщика Windows требуется отдельный пакет MSI для x86 и x64.

В WiX v3.6 + Burn предоставляет функциональность для «объединения» двух пакетов в одну установку (управляемую исполняемым файлом Burn). Вы можете сделать это с файлом .wxs, который выглядит примерно так:

<Bundle ...>
  <BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.RtfLicense' />

  <Chain>
    <MsiPackage InstallCondition='NOT VersionNT64' SourceFile='path\to\x86.msi' />
    <MsiPackage InstallCondition='VersionNT64' SourceFile='path\to\x64.msi' />
  </Chain>
</Bundle>

Это только начало, а не все, что может сделать Burn, но оно показывает, как объединить два пакета архитектуры в один процесс установки.

1 голос
/ 09 октября 2009

Если вы устанавливаете .Net перед запуском msi, вы также можете включить исполняемый файл, написанный на c #, который определяет вашу платформу и затем передает ответ обратно вашему загрузчику.

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

C # пример

0 голосов
/ 04 сентября 2010

dotNetInstaller - это, вероятно, то, что вам нужно использовать: вы можете создавать различные «установочные» конфигурации, которые будут срабатывать только при соблюдении правильной комбинации ОС, платформы и языка. Вы также можете встраивать любые исполняемые файлы MSI, предварительные требования и т. Д. В исполняемый файл установки, чтобы у пользователей был только один файл для загрузки / запуска.

...