Как упаковать два MSI-файла и выполнить условие между ними? - PullRequest
4 голосов
/ 21 декабря 2009

Мне нужно упаковать два msi-файла в один файл setup.exe (через загрузчик) и запустить только один из них в зависимости от условия (машина x64 или x86). Есть ли способ сделать это?

Ответы [ 2 ]

3 голосов
/ 21 декабря 2009

Вы можете упаковать два msi-файла, используя iexpress.exe (стандартное средство Windows), а также добавить пользовательский пакетный файл, который вы указали в качестве команды запуска вашего пакета iexpress. Пакетный скрипт определит архитектуру и запустит соответствующий файл MSI:

if %PROCESSOR_ARCHITECTURE% EQU x86 (
  echo "x86"
  call setup-x86.msi
) ELSE (
   echo "x64"
   call setup-x64.msi
)

Поместите этот код в командный файл с именем installmsi.bat. Затем в мастере IExpress введите следующую команду установки:

cmd.exe /C installmsi.bat

Здесь необходимо явно вызвать cmd.exe, потому что в противном случае IExpress будет использовать старый command.com.

Вы, вероятно, также хотите скрыть окно пакета, что можно сделать, установив соответствующий параметр в мастере IExpress.

0 голосов
/ 20 июля 2010

Вы можете написать программу и встроить оба установщика, а затем проверить, является ли система 64-битной или нет. Я написал сообщение в блоге о написании собственного приложения, которое делает это на http://blog.foldertrack.com/?p=45

...