0

У меня есть проект VS2010, который соответственно создает 32-битный Shim и 64-разрядный Shim. Это надстройка Outlook, разработанная в .NET (отсюда и оптимизация).32-разрядная прокладка и 64-разрядная прокладка в установщике Windows

С появлением x64 не так давно в Outlook (начиная с 2010 года) мы постоянно создавали файлы установщика Windows x86 и файлы установщика Windows x64.

Настоящая проблема, с которой я столкнулся, - это когда пользователи загружают файлы MSI, многие из которых не знают , какая битста их Outlook составляет. Так много раз они устанавливают неверные версии MSI и не загружаются в свой Outlook.

Стандартная ошибка COM сообщается в диалоге Com Addins (не загружается ... ошибка времени выполнения и т. Д.).

Я хочу, чтобы избежать создания и развертывания 2 отдельных файлов MSI ... есть ли возможность, я могу каким-то образом иметь один универсальный установщик? Если пользователи просто загружают одну MSI, и программное обеспечение будет идти и устанавливать/регистрироваться в соответствующем Program Files(x86)/Program Files.

Возможно ли это?

Я смотрел WiX и InstallShield, но не очень хотел работать с ними. Можно ли сделать то, что я хочу достичь, используя встроенный установщик Windows в VS2010?

ответ

0

Вы можете создать один установщик MSI - это может быть WiX, установщик Windows или что-то еще. Вам просто нужно добавить настраиваемое действие, в котором вы можете обнаружить битрейт Outlook и зарегистрировать нужный загрузчик на машине. См. Windows Installer Setup With Custom Actions для получения дополнительной информации.

+0

Какой загрузчик вы бы здесь говорили? Могу ли я просто запустить тихую установку MSI, если я нашел правильную битность Outlook? –

0

Вам по-прежнему нужны два отдельных файла MSI. См:

https://blogs.msdn.microsoft.com/heaths/2008/01/15/different-packages-are-required-for-different-processor-architectures/

https://msdn.microsoft.com/en-us/library/windows/desktop/aa367451(v=vs.85).aspx

особенно там, где он говорит, что 32-разрядные пакеты должны содержать 32-разрядные компоненты.

Проблема заключается в том, что вашему загрузчику/установщику необходимо определить битность Outlook в системе перед загрузкой.

Вы можете создать 32-разрядные и 64-разрядные модули слияния для надстройки Outlook и включить 32-разрядный модуль слияния в 32-разрядный пакет, а также 32-разрядные и 64-разрядные модули слияния в вашей 64-битной настройке, чтобы он регистрировал обе биты. Если пользователь перешел с 32-разрядного Outlook на 64-разрядный, им не нужно будет переустанавливать ваш продукт.

64-разрядные MSI не могут быть установлены в 32-разрядной системе, поэтому при создании ошибки должна быть установлена ​​32-разрядная MSI в 64-разрядной системе Outlook. Если механизм обнаружения для 64-разрядного Outlook может быть включен в 32-разрядный MSI в качестве условия запуска, вы можете предотвратить эту ошибку.

+0

Можете ли вы подробнее рассказать о «Объединяющем модуле» –

+0

В VS просто создайте проект модуля слияния, один из типов проектов установщика, добавьте свои файлы и создайте MSM. Затем вы можете добавить его в свои проекты настройки MSI. – PhilDW