Как установить x64 программу на x86

Я использую 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) все равно вошло .

Установка программы HDS и драйверов Xhorse для x64 и 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-разрядные приложения могли бы всегда использовать эту переменную среды и не нуждаться в какой-либо условной логике, в зависимости от того, на какой ОС они работают.

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

Читайте также:
Отзывы о программе zet

Интересно, если бы использование %ProgramFiles% переменной среды решило бы это. Не уверен, как он обрабатывает разницу x86 / 64bit.

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

Как перейти с 32 на 64 битную Windows? Легко и без потерь!

Лучше всего загрузить новую программу, такую ​​как x64 Winrar, и просто посмотреть, где она установлена, чтобы исключить проблему с вашей машиной.

Что касается того, чтобы все испортить — может, но это действительно зависит от программы, нет единого ответа, который подходит всем . у некоторых небольших, компактных программ, содержащих всего несколько файлов, проблем не должно быть, если, как если бы вы говорили об Office Adobe, или любая другая «сюита» или большая программа, скорее всего, потерпит неудачу, так как они имеют много общих компонентов, которые являются кросс-архитектурными.

Итак, почему Microsoft не сделала «C: Program Files» местом для 32-битных приложений, чтобы эти старые установщики не вызывали проблем. Кроме того, я не очень понимаю, почему должно быть разделение. Почему они не могут просто зайти в «C: Program Files»?

Причина, по которой оба не могут этого сделать, заключается в том, что некоторые приложения (особенно приложения с общими компонентами) имеют файлы с тем же именем на 32-разрядной и 64-разрядной версиях. Что касается того, почему это так — я понятия не имею, у кого-то, вероятно, была очень веская причина в то время, и это просто показалось «делом».

Если вы используете что-либо кроме %ProgramFiles% (или CSIDL_PROGRAM_FILES , или под .NET Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) ), у вас все равно проблемы, поскольку в пользовательских установках программы могут устанавливаться на других томах (например, D:), а в международных установках по умолчанию часто используются другие папки.

  • Испанское Окно C:Archivos de Programa ,
  • Французское Окно C:Programmes ,
  • Немецкое Окно C:Programme ,
  • Шведские окна: C:Program

Я не упомянул переменные среды в своем первоначальном вопросе, чтобы сделать его простым. Я только что добавил правку, которая указывает на то %ProgramFiles% , что именно использование вызывает проблему.

Обратите внимание, что в 64-разрядных версиях Windows 7 (это также может относиться и к другим более новым версиям ОС, но я могу подтвердить это только для 64-разрядной версии Win 7), существует различие между видимым расположением вашего% ProgramFiles% в проводнике и в DOS.

Читайте также:
Какие операции могут выполнять антивирусные программы

В Windows 7 фактическое местоположение физической папки% ProgramFiles% (и связанной переменной% ProgramFiles (x86)% environemnt) фиксируется в соответствии с английской версией ; то есть «C: Program Files» и «C: Program Files (x86)» соответственно, но отображается в проводнике, локализованном по мере необходимости.

Предоставить конкретный пример; в 64-разрядной установке Windows 7 в Швеции, если вы открываете Проводник и просматриваете системный диск (обычно C :), вы видите папки « Program » и « Program (x86) ». Ввод% ProgramFiles% в адресную строку переводит вас в «C: Program».

Однако, если вы откроете окно DOS и наберете SET, вы увидите, что фактическое значение% ProgramFiles% — это «C: Program Files», а не средство просмотра папок «C: Program». Дальнейшие исследования с CD и DIR вы можете увидеть физически, это «C: Program Files»

Мораль такова, что если вы используете переменные среды или программу через API, все будет работать, но помните об этом тонком изменении при изучении файловой системы!

В польской версии «Program Files (x86)» это «Pliki programów (x86)», а «Program Files», ну… «Program Files». У польского есть странная грамматика. Кроме того, пожалуйста, не называйте это коробкой DOS. Там нет DOS.

Источник: qastack.ru

Установка 64-битных приложений

CreateInstall является 32-битным приложением и может создавать только 32-битные инсталляции, но вы также можете использовать этот инсталлятор для установки 64-битных приложений. На 64-битной версии Windows все 64-битные приложения устанавливаются в директорию Program Files, а 32-битные приложения устанавливаются в Program Files (x86).

Следует заметить, что существует автоматический редирект для 32-битных приложений с Program Files на Program Files (x86). Поэтому, даже если вы явно укажете путь установки в инсталляции как Program Files, ваши файлы всё равно установятся в Program Files (x86). Чтобы решить эту проблему и установить 64-битную программу в Program Files, необходимо предварительно отключить этот редирект.

Для этого вставьте перед распаковкой или в начале скрипта команду WOW64Redirection On/Off со значением 64xRedirection State как Отключено. При необходимости вы можете в дальнейшем включить редирект обратно с помощью этой же команды. В параметре Имя переменной вы можете указать имя для получения пути Program Files для 64-битных приложений. На 32-битных версиях Windows данная команда не имеет никакого эффекта, а в переменную запишется стандартный путь Program Files.

Команда отключение редиректа

Команда отключение редиректа

Если вы устанавливайте только 64-битную версию приложения, то тогда просто укажите там progfiles, в этом случае у вас путь установки измениться автоматически. В противном случае, не забудьте изменить путь установки до распаковки или других действия с файлами. Например, setuppath => #progfiles64#My Application.

Читайте также:
Установка линукс на флешку программа

Следует заметить, что автоматический редирект применяется не только для директории Program Files, но и для системной директории Windows. Все 32-битные приложения при обращении к System32 перенаправляются на SysWOW64. При отключении редиректа вы сможете устанавливать 64-битные файлы в System32.

Отключение стандартного редиректа Windows позволяет также создавать инсталляции, которые могут устанавливать 64-битную версию или 32-битную версию программы в зависимости от версии Windows у пользователя или выбора самого пользователя. Например, существует переменная os64, которая равна 1 на 64-битных версиях Windows и равна 0 на 32-битных версиях. Далее, достаточно указывать в командах поле Условие как os64 или !os64, чтобы выполнялись только соответствующие команды и устанавливались нужные файлы для пользовательской версии Windows.

Отключение автоматического редиректа даёт возможность устанавливать 32-битные приложения в Program Files на 64-битных версиях Windows. Не используйте данный метод для таких целей!

Смотрите также

Eonza automation software — free, open source cross-platform program for easy creation and management of scripts. Gentee script programming language — Free, open source and cross-platform programming language for automation.

  • Справочная информация
  • Введение
  • Первое знакомство
  • Сравнение инсталляторов
  • Лицензионное соглашение
  • Лицензия Light
  • Лицензия Free
  • Возможности программы
  • Список команд
  • FAQ
  • Глобальные переменные
  • Как использовать переменные среды
  • Как определить Control ID
  • Как подписать инсталляцию
  • Как создавать ярлыки
  • Локальные переменные
  • Переносная версия
  • Установка 64-bit приложений
  • Ложные срабатывания антивирусов
  • Фильтр распаковки
  • Запуск из командной строки
  • Как двигать контролы
  • Как использовать Условие
  • Мультисборка установок
  • Общие параметры диалогов
  • Переменные зависимые от языка
  • Переменные-параметры диалогов
  • Предопределенные директории
  • Предопределенные переменные
  • Функция-обработчик диалогов

Источник: www.createinstall.ru

Как установить x64(64-разрядную) и x86(32-разрядную) Microsoft Office на одном компьютере?

Могу ли я использовать обе версии Microsoft Office в одной и той же Windows? например, Office 2007 (32-разрядная версия) и Office 2013 (64-разрядная версия). На answers.microsoft.com было сказано, что это невозможно. Есть способы?

задан T.Todua 1k

1 ответ 1

  • Сначала установите 64-битные версии, от самой старой до самой новой
  • Затем установите любые 32-битные версии, снова в порядке от самой старой до самой новой
  • Не пытайтесь установить 32- и 64-разрядные версии одной и той же версии Office (например, одна будет версии 2016, а другая 2013)
  • Только одна версия Outlook установлена.

Если одна из версий отказывается активироваться, используйте следующие команды:

cd «C:Program Files (x86)Microsoft OfficeOffice» cscript ospp.vbs /act

Эта статья, написанная в 2013 году, относится к Office 2013, поэтому решение еще предстоит протестировать на последней версии Office.

Источник: poweruser.guru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru