Создайте MSI-пакет, который устанавливает 32-разрядные и 64-разрядные ресурсы на компьютере.
Мне нужно создать пакет MSI, который устанавливает на компьютер 32-битные и 64-битные DLL-файлы плагина на основе Firebreath.
Чего я хочу добиться - это установить оба ресурса и использовать тот, который подходит в зависимости от браузера (32-битный или 64-битный). Например, если у меня есть 64-битный компьютер с Windows, Chrome 64-битный и Firefox 32-битный; Я хочу иметь возможность использовать мой плагин из обоих браузеров.
Для этого я использую Visual Studio 2008 и Wix. До сих пор мне удавалось создать 32-битную.dll, которая преобразуется в 32-битную.msi и 64-битную.dll, которая не может быть преобразована в 64-битную.msi из-за heat.exe ошибка. Я получаю нечто похожее на это: https://groups.google.com/forum/
Упомянутая выше реализация создаст 2 разных установщика.msi (если 64-разрядная версия MSI не даст сбой). Я хотел бы создать файлы.dll (32-разрядные.dll и 64-разрядные.dll), а затем упаковать их в один установщик.msi, который регистрирует оба.
Возможно ли это, и если да, то как лучше всего это сделать?
2 ответа
Установщик Windows не поддерживает это. Строго говоря, пакет.MSI зависит от платформы. Есть несколько хитростей и приемов для создания "гибридного" установщика. Это влечет за собой создание 32-разрядного MSI, который подрывает проверки MSI для установки файлов в 64-разрядные расположения и настраиваемые действия для создания 64-разрядных разделов реестра.
Ответ книги - создать 32-битный и 64-битный MSI, а затем заключить их в загрузчик, который регистрирует себя в программах и функциях и устанавливает 2 MSI под прикрытием. В WiX это можно сделать с помощью Burn, чтобы объединить 2 установщика.
В таком случае я сосредоточусь в основном на 64-битном установщике, а не на создании другого установщика и его загрузке.
Ниже мой подход к тому же, пожалуйста, укажите мне, если я ошибаюсь.
Поскольку Koka хочет установщик, который будет настраивать вещи для плагина браузера и использовать браузер в соответствии с платформой. В таком случае посмотрим
Операционная система 1> является 32-битной, поэтому нет шансов на 64-битный броузер, так что сохраняйте установщик простым, когда все настраивается для 32-битного броузера.
2> Теперь ОС 64-битная. Скорее всего, это 32/64-битный браузер, поэтому создайте установщик с различными компонентами для 32-битного и 64-битного, 32-битный компонент настроит для 32-битного броузера и то же самое с 64-битным компонентом. И оставьте все остальное для ОС как 32-битный браузер. всегда будет использовать 32-битный плагин Firebreath.
Я считаю, что Regsvr установит плагин для всех доступных браузеров, но в установщике это считается плохой практикой.
это не полное доказательство, так как при установке плагина браузера есть много вещей, о которых разработчик должен позаботиться при создании установщика.