Знам, че на 64-битов Windows 32-битовите приложения влизат в C:\Program Files (x86)
по подразбиране, а 64-битовите в C:\Program Files
.
Но какво ще стане, ако имате по-сложен инсталационен пакет, включващ, да речем, един клиентски компонент (32-битов) и един сървърен компонент (64-битов) и евентуално няколко помощни инструмента (32-битов). Какъв трябва да бъде пътят за инсталиране по подразбиране в този случай?
Според някои статии смесването на битовост се обезсърчава от Microsoft и някои инсталационни рамки:
- Единичен MSI за инсталиране на правилния 32 или 64 малко 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-битовата директория, когато се инсталира като едно приложение в един и същ инсталационен пакет?