Установщик изменяет переменную PATH, изменения не отображаются в командной оболочке - PullRequest
5 голосов
/ 02 сентября 2008

Я добавил настраиваемое действие для установки в мой установщик, чтобы добавить один из моих каталогов установки в переменную среды System PATH. После того, как я запустил установщик, переменная PATH отражает изменения (когда я обращаюсь к ней через апплет Control Panel :: System), но когда я запускаю новую командную оболочку, переменная PATH не отражает изменения. Есть ли что-то, что я не могу сделать, что вызывает это?

Ответы [ 5 ]

3 голосов
/ 02 сентября 2008

Я думаю, это зависит от того, как вы запускаете новую командную оболочку. Например, при изменении переменной среды PATH в разделе «Свойства системы» это изменение не отражается до тех пор, пока вы не откроете новую командную строку. Я думаю, что когда вы запускаете новый процесс «cmd» (например, из диалогового окна «Выполнить»), вы получаете свежую копию всех переменных среды, но если вы запускаете командную строку другим способом, то это не так.

Для того, чтобы что-то сделать с помощью такого скрипта, вам может потребоваться перезагрузка, прежде чем вы заметите изменение.

2 голосов
/ 02 сентября 2008

http://support.microsoft.com/kb/310519 говорит, что для системных переменных среды (одной из которых является PATH) требуется перезапуск, хотя у меня есть ощущение, что выхода из системы и включения может быть достаточно.

2 голосов
/ 02 сентября 2008

Как вы запускаете командную оболочку? С TaskManager?

Я подозреваю, что вы можете запускать его из Проводника - если я правильно помню, это может означать, что вы наследуете родительские процессы (в данном случае Windows Explorer) переменную PATH. Поскольку это было установлено до запуска вашего установщика, вы видите старое значение.

Не уверен, поможет ли это ...

1 голос
/ 19 ноября 2008

Почему вы используете CustomAction для этого? Установщик Windows поддерживает изменение переменных среды. Кроме того, я думаю, что установщик Windows отправляет широковещательное сообщение для обновления системы при изменении переменных среды. Это может означать, что вам не нужно перезагружаться ... но прошло много времени с тех пор, как я попробовал YMMV.

0 голосов
/ 02 сентября 2008

Как вы добавляете переменную окружения?

Не используя никаких внешних инструментов, вы можете добавить его в реестр . Затем ваш тест открытия нового командного окна будет отражать ваши изменения.

...