Обнаружение x86 / x64 и установка правильного .msi

Я дорабатываю заявку, которая скоро будет отправлена ​​на проверку программы Windows Logo. Одно из требований - совместимость с x64. В частности, Crystal Reports 2008 должен работать под x64.

Моя проблема в том, что Crystal Reports basic 2008 (тот, который входит в состав Visual Studio 2008) не имеет модулей слияния и должен быть установлен с помощью предоставленных установщиков .msi. Они предлагают отдельные установщики для x86 и x64.

Итак, как мне обнаружить x86 и x64 во время установки, а затем запустить соответствующий Crystal msi? Возможно ли это без модулей слияния?

РЕДАКТИРОВАТЬ:

Этот:

IF PROCESSOR_ARCHITECTURE == x86 AND
   PROCESSOR_ARCHITEW6432 NOT DEFINED THEN
   // OS is 32bit
ELSE
   // OS is 64bit
END IF

вроде подскажет как это обнаружить (спасибо MicSim). Но как мне сделать это в MSI? Это настраиваемое действие? И тогда как мне запустить разные требуемые msi для отчетов кристалла x32 и x64?

А почему под WOW64 не работает установщик кристаллов x86? Вам необходимо установить x64 Crystal для работы с вашим приложением WOW64 x86. Раздражающий...

РЕДАКТИРОВАТЬ 2:

Итак, определение x86 / x64, похоже, рассматривается здесь. А как насчет ручного запуска выбранного вами MSI-файла?


person Jeremy Sena    schedule 27.03.2009    source источник


Ответы (4)


Самый простой способ обнаружить 64-разрядную операционную систему - использовать свойство VersionNT64. Это свойство можно использовать в условиях для компонентов или настраиваемых действий (например, условие Not VersionNT64 будет истинным только для 32-разрядных операционных систем).

Что касается установки других пакетов MSI во время вашей установки, это немного сложнее. Установщик Windows позволяет одновременно запускать Execute Sequence только один MSI. Это означает, что вы должны либо установить свой Crystal Reports MSI во время последовательности пользовательского интерфейса, используя настраиваемое действие (будьте осторожны, если вы сделаете это, последовательность пользовательского интерфейса будет пропущена, если MSI работать в автоматическом режиме), или создайте какую-нибудь программу начальной загрузки, которая будет последовательно запускать как Crystal Reports MSI, так и вашу собственную.

Я никогда не создавал свой собственный загрузчик, но InstallShield имеет программу загрузчика, встроенную в их setup.exe; они называют пакеты, установленные таким образом, предпосылками.

person Kevin Kibler    schedule 28.03.2009
comment
Версия NT64 поддерживается установщиком Windows v4. Msix64 поддерживается, начиная с установщика Windows v3.1, см. stackoverflow.com/questions/2458550/ - person KargWare; 25.03.2020

Просто погуглил: если у вас есть проект MSI, вы можете проверить свойства, подобные описанным здесь .

Для получения дополнительной информации об обнаружении процесса и архитектуры ОС вы можете прочитать этот блог MSDN о" HOWTO: определение разрядности процесса ".

person MicSim    schedule 27.03.2009

Вы можете запустить MSI-файл Crystal Reports с помощью настраиваемого действия, которое запускает [SystemFolder] msiexec. Просто укажите в качестве аргументов "/ i [YourFolderWithCRMSI] msiname.msi".

person Jim    schedule 21.04.2009
comment
Вы также можете добавить / q в качестве параметра, чтобы он не беспокоил покупателя. - person Andrew Shepherd; 15.07.2009

Согласно На этом форуме Crystal Reports теперь включает модуль слияния для Visual Studio 2008.

HREF = https://smpdl.sap-ag.de/~sapidp/012002523100005986132008E/cr10_net_mm.zip

Изменить (от автора): оказалось, что это не работает для Crystal Reports, поставляемого в комплекте с Visual Studio 2008.

person Andrew Shepherd    schedule 15.07.2009