Как сохранить отдельные переменные PATH для 32- и 64-разрядных приложений? - PullRequest
4 голосов
/ 03 июня 2009

Я перехожу на 64-разрядную рабочую станцию ​​Windows и буду разрабатывать как 32-разрядные, так и 64-разрядные приложения. Мне нужно будет поддерживать разные переменные среды PATH при запуске 32- и 64-битной версии моего приложения.

Каков наилучший способ сделать это? Кажется, что это должно быть возможно со всем перенаправлением реестра, которое происходит.

Спасибо, Dave

Ответы [ 2 ]

3 голосов
/ 03 июня 2009

Это невозможно напрямую, поскольку общесистемные переменные среды хранятся в HKLM \ System \ CurrentControlSet \ Control \ Session Manager \ Environment, а перенаправление WOW64 в кусте SYSTEM отсутствует.

Если ваша программа устанавливается в Program Files, вы можете добавить свой путь на основе% ProgramFiles% в переменную среды PATH -% ProgramFiles% расширяется до 32-битных программных файлов при работе под WOW64.

1 голос
/ 27 ноября 2009

Я нашел «хитрость», основанную на магии перенаправления, которую Windows делает со своей папкой system32 / SysWOW64. Это работает довольно хорошо для моих 32- и 64-битных клиентов Oracle. Я задокументировал процедуру на своем веб-сайте: Параллельно используйте 32- и 64-битный клиент Oracle на 64-битной Windows 7, например. .NET Apps

Соответствующие части:

Откройте консоль с повышенными правами и в %windir%\system32 создайте мягкую ссылку на установку 64-разрядного клиента Oracle, а в %windir%\SysWOW64 вы создадите мягкую ссылку на 32-разрядную установку.

Отредактируйте переменную среды PATH и добавьте к ней следующий путь: c:\windows\system32\11g. Обратите внимание, что %WINDIR% не будет расширен в %PATH%.

...