Я использую 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-разрядные приложения могли бы всегда использовать эту переменную среды и не нуждаться в какой-либо условной логике, в зависимости от того, на какой ОС они работают.
%ProgramFiles%
переменной среды решило бы это. Не уверен, как он обрабатывает разницу x86 / 64bit.