Pregunta

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 él a través del Panel de control:: subprograma del sistema), pero cuando inicio un nuevo shell de comandos, la variable PATH no refleja los cambios.¿Hay algo que no estoy haciendo que cause esto?

¿Fue útil?

Solución

Creo que esto depende de cómo inicie el nuevo comando Shell.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 inicia un nuevo proceso "cmd" (desde el cuadro de diálogo Ejecutar, por ejemplo), obtiene una copia nueva de todas las variables de entorno, pero si inicia el símbolo del sistema de una manera diferente, entonces no es así.

Para algo hecho a través de un script como ese, es posible que deba reiniciar antes de notar el cambio.

Otros consejos

¿Cómo estás iniciando el shell de comandos?¿Con el Administrador de tareas?

Sospecho que podrías estar iniciándolo desde el Explorador; si no recuerdo mal, esto podría significar que estás heredando la variable PATH de los procesos principales (el Explorador de Windows en este caso).Dado que esto se configuró antes de que se ejecutara el instalador, verá el valor anterior.

No estoy seguro si esto ayuda...

http://support.microsoft.com/kb/310519 dice que para las variables de entorno del sistema (de las cuales PATH es una) se requiere un reinicio, aunque tengo la sensación de que cerrar y volver a iniciar sesión puede ser suficiente.

¿Por qué utilizas una CustomAction para esto?Windows Installer admite la modificación de 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 necesitas reiniciar...pero ha pasado un tiempo desde que lo intenté YMMV.

¿Cómo se agrega la variable de entorno?

Sin utilizar herramientas externas, puedes agregarlo al registro.Luego, su prueba de abrir una nueva ventana de comando reflejará su cambio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top