Почему Microsoft решила поместить 32-разрядные приложения в "Program Files (x86)"?

Может быть, имеет смысл поместить 64-разрядные приложения в "Program Files (x64)" и оставить 32-разрядные приложения для запуска в "Program Files"?

У меня есть командный файл, который должен запустить компилятор Flex. В x64 эта программа находится в "Program Files (x86)". В Windows Vista 32-разрядная версия находится в "Program Files" - переменные среды? Проверь это:

ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86) 

Что я делаю?


set mxmlc="%ProgramFiles(x86)%\Adobe\Flex Builder 3\sdks\3.1.0\bin\mxmlc.exe"
if NOT EXIST %mxmlc% set mxmlc="%ProgramFiles%\Adobe\Flex Builder 3\sdks\3.1.0\bin\mxmlc.exe"

Тпх

7 ответов

Это ничего. Угадайте, что содержит \Windows\System32? Правильно, 64-битные файлы DLL. Так, где они решили поместить 32-разрядные устаревшие файлы DLL? \ Windows \ SysWOW64 конечно.

Проблема в том, что, несмотря на наличие встроенных средств для приложений Windows для определения местоположения системных каталогов, многие приложения их не используют. А поскольку Microsoft, прежде всего, является рабом обратной совместимости, мы получаем такие глупые вещи, как эта.

Чтобы сделать его портативным:

SET ExecPath=%ProgramFiles(x86)%
IF "%ExecPath%"=="" SET ExecPath=%ProgramFiles%

x86 обычно считается 32-битным, если вы не укажете x86-64. В любом случае, зачем им нужны собственные каталоги программных файлов?

Э-э... Я думаю, что x86 относится к архитектуре процессора Intel, например, 8086, 80286, 80386, 80486 и 80586.

80386 имел первый набор 32-битных команд, см. X86 (Википедия).

РЕДАКТИРОВАТЬ: Ах вопрос был уточнен.

См. Вопрос переполнения стека C# - Как получить программные файлы (x86) в Vista x64.

a.) То, что место установки по умолчанию меняется, не означает, что вы ДОЛЖНЫ устанавливать его там. Простое изменение реестра сделает ваши новые установки куда угодно. Мои все идут на отдельный диск, в папки по моему выбору. Если приложение не может даже отслеживать его путь установки через реестр, то, вероятно, его не стоит устанавливать в первую очередь.

б.) Я предполагаю, что они помещают 32-битные приложения в папку x86, потому что это не 32-битная ОС, то есть старые вещи идут сюда. Вы не купите новый дом и не позволите своей собаке спать в нем, пока вы спите в его старом собачьем доме, верно? Если 64-разрядная версия - это шаг вперед, то зачем вам помещать устаревшее программное обеспечение в стандартную папку установки?

РЕДАКТИРОВАТЬ: у меня есть командный файл, который должен запустить компилятор FLEX. в X64 эта программа находится в "Program Files (x86)" в Vista 32 bit, она находится в "Program Files" .. переменные среды? .. Проверь это:

Используйте переменную среды%ProgramFiles% и пропустите все эти хлопоты.

Потому что Microsoft любит делать вещи более сложными для людей. Вместо того, чтобы упростить переход на 64-разрядную версию, они сделали его разделенным и сложным.

Другие вопросы по тегам