Я использовал 64-битную версию Windows 7 начиная с CTP и столкнулся с несколькими проблемами с приложениями, которые устанавливаются в папку C:\Program Files (x86)
. Какова цель иметь 2 отдельных каталога Program Files?
Каждая программа, которую я установил, была помещена в папку C:\Program Files (x86)
. Кажется, не имеет значения, является ли приложение 32 или 64-битным. Почему 64-битные приложения не помещаются в C:\Program Files
?
Есть ли способ изменить значение по умолчанию на C:\Program Files
? Было бы что-нибудь испортить, если я просто положил все в C:\Program Files
?
Если действительно есть какая-то выгода от наличия отдельной папки для 64-битных приложений, кажется, что более разумным было бы по умолчанию использовать C:\Program Files
для приложений x86 и создать новую папку C:\Program Files (x64)
для новые 64-битные приложения. Это поможет сохранить обратную совместимость. Я работаю разработчиком программного обеспечения, и некоторые из моих проектов содержат ссылки на пути к библиотекам в C:\Program Files
. Теперь эти ссылки не работают на компьютере с Windows 7, который поместил их в C:\Program Files (x86)
. Я даже пытался изменить целевое местоположение в установщике на C:\Program Files
, но это было проигнорировано, и приложение все равно вошло в C:\Program Files (x86)
.
Это очень расстраивает, потому что мне нужно обмениваться исходным кодом между 32- и 64-битными машинами, и я не хочу возиться с каким-то файлом конфигурации, который по-разному устанавливает путь к этим библиотекам на разных машинах.
Редактировать в отношении переменных среды: (Для простоты используются только английские значения переменных по умолчанию.) На 64-битной машине %ProgramFiles%
будет C:\Program Files
а новая переменная %ProgramFiles(x86)%
будет C:\Program Files (x86)
. Таким образом, если у вас есть 32-разрядная программа, которой нужно найти путь к папке, в которой она будет установлена, необходимо проверить, работает ли она в 32-разрядной или 64-разрядной версии Windows, чтобы знать, какую переменную среды использовать. Любые 32-битные приложения, которые были написаны без этого рассмотрения, должны быть обновлены для корректной работы на 64-битной машине. Поэтому даже при использовании переменных среды обратная совместимость нарушается.
Кроме того, %ProgramFiles(x86)%
не существует в 32-разрядных версиях Windows. Если бы это было так, то 32-разрядные приложения могли бы всегда использовать эту переменную среды и не нуждаться в какой-либо условной логике, в зависимости от того, на какой ОС они работают.