Можно ли вызвать 64-разрядный установщик MSI из 32-разрядного установщика MSI? У нас есть 32-разрядный установщик продукта, но несколько компонентов - 64-разрядные (например, обработчики Windows Shell Extension), и мы хотим установить их вместе с нашими приложениями. Любые идеи о том, как это можно сделать? Через MSM или пользовательские действия или соединение MSI? Мы используем InstallShield.Вызов 64-разрядного MSI/MSM из 32-разрядного установщика MSI
ответ
Существует мьютекс (_MSIExecute Mutex), который предотвращает запуск двух установщиков одновременно. Технически это возможно для последовательности пользовательского интерфейса, чтобы использовать пользовательское действие, чтобы запустить второй процесс и запустить его таким образом, но затем вы уничтожаете возможность делать бесшумные установки.
Правильный подход заключается в создании 32-битного и 64-битного MSI и использовании загрузчика/цепочка (для InstallShield либо установщика набора, либо установки/функции) для сериализации их установки. Другой подход, хотя и неподдерживаемый, заключается в создании единственной 32-разрядной MSI и использовании нескольких менее совершенных пользовательских действий для обработки 64-битных записей реестра. Это может быть хорошим решением, если 64-битные части малы. Не лучший, но он работает.