2008-09-02 11 views
5

Agregué una acción de instalación personalizada a mi instalador para agregar uno de mis directorios de instalación a la variable de entorno System PATH. Después de ejecutar el instalador, la variable PATH refleja los cambios (cuando accedo a ella a través del panel de control :: applet del sistema), pero cuando comienzo un nuevo shell de comando, la variable PATH no refleja los cambios. ¿Hay algo que no estoy haciendo, que cause esto?El instalador cambia la variable PATH, los cambios no aparecen en Command Shell

+0

Véase también http://serverfault.com/questions/8855/how-do-you-add-a-windows-environment-variable-with-rebooting Aparentemente tiene que enviar un mensaje del sistema o bien se generará una nueva PATH. t tome – rogerdpack

Respuesta

2

creo que esto depende de cómo se está iniciando el nuevo shell de comandos. Por ejemplo, cuando cambia la variable de entorno PATH en Propiedades del sistema, el cambio no se refleja hasta que abre un nuevo símbolo del sistema. Creo que cuando ejecutas un nuevo proceso "cmd" (desde el diálogo Ejecutar, por ejemplo), obtienes una copia nueva de todas las variables de entorno, pero si ejecutas el comando indicá una manera diferente y luego no.

Para hacer algo a través de un script así, es posible que deba reiniciar antes de notar el cambio.

+0

Sí, he tenido scripts que cambian las variables de ruta, y he encontrado que ninguna forma de iniciar el símbolo del sistema muestra esos cambios hasta después de un reinicio. Esto es en Windows XP. – sampablokuper

2

¿Cómo está iniciando el comando shell? Con el TaskManager?

Sospecho que podría estar comenzando desde el Explorador - si mal no recuerdo, esto podría significar que está heredando los procesos principales (Windows Explorer en este caso) variable PATH. Como eso se configuró antes de que tu instalador se ejecutara, verás el valor anterior.

No estoy seguro si esto ayuda ...

1

http://support.microsoft.com/kb/310519 dice que para las variables de entorno del sistema (que PATH es una de) requiere un reinicio, aunque tengo la sensación de que el inicio y el cierre de sesión pueden ser suficientes.

0

¿Cómo se agrega la variable de entorno?

Sin usar herramientas externas, puede add it to the registry. Entonces, su prueba de abrir una nueva ventana de comando reflejará su cambio.

1

¿Por qué usa una función personalizada para esto? El instalador de Windows admite la modificación de las variables de entorno de forma nativa. Además, creo que Windows Installer envía un mensaje de difusión para actualizar el sistema cuando cambian las variables de entorno. Eso puede significar que no necesita reiniciar ... pero ha pasado un tiempo desde que lo intenté con YMMV.

Cuestiones relacionadas