Я знаю, что в 64-битной Windows 32-битные приложения по умолчанию идут в C:\Program Files (x86)
, а 64-битные в C:\Program Files
.
Но что, если у вас есть более сложный установочный пакет, включающий, скажем, один клиентский компонент (32-разрядный) и один серверный компонент (64-разрядный) и, возможно, несколько вспомогательных инструментов (32-разрядный). Каким должен быть путь установки по умолчанию в этом случае?
Согласно некоторым статьям, смешивание битов не рекомендуется Microsoft и некоторыми установочными фреймворками:
- Один MSI для установки правильных 32 или 64 приложение bit c #
- http://jpassing.com/2009/10/09/mixing-32-and-64-bit-components-in-a-single-msi
Я не понимаю, почему смешивание их должно быть таким большим запретом, учитывая, насколько хорошо платформа x64 запускает приложения x86 и тем более с управляемым кодом, где одни и те же двоичные файлы могут работать в обоих режимах. В моем случае 75% сопутствующих библиотек совместно используются клиентом и сервером и полностью идентичны, поэтому нет смысла разделять их.
Итак, учитывая это, какое место для установки является предпочтительным для этого сочетания 32- и 64-разрядных приложений? C:\Program Files (x86)
или C:\Program Files
? На мой взгляд, предпочтительнее 64-битное расположение. Я рассматриваю каталог Program Files (x86) как устаревшую «песочницу» для старых приложений, которые никогда не предназначались для 64-битных приложений. В случае гибридного 32/64-битного приложения существует 64-битная осведомленность, поэтому не должно быть никаких устаревших причин для изолирования 32-битных файлов от 64-битных. Для меня путь без "(x86)" также более привлекателен и указывает на то, что это современное приложение, адаптированное для 64-битной работы (где необходимо).
Кто-нибудь знает о других причинах за или против размещения 32/64-битной смеси исполняемых файлов в 64-битном каталоге при установке как одного приложения в одном пакете установщика?