Cache de variável de ambiente de caminho no windows?

2

Estou ajudando um de nossos testadores na solução de problemas de configuração em um sistema Windows XP SP3. Nosso aplicativo usa uma variável de ambiente, chamada APP_HOME, para se referir ao diretório onde nosso aplicativo está instalado. Quando o aplicativo é instalado, utilizamos as seguintes variáveis de ambiente:

APP_HOME = C:\application\
PATH = %PATH%;%APP_HOME%bin

Agora, o problema está em que ela está trabalhando com várias versões do mesmo aplicativo. Então, para alternar entre a versão 7.0 e 8.1, por exemplo, ela pode usar:

APP_HOME = C:\application_7.0\ (for 7.0)

e depois alterá-lo para:

APP_HOME = C:\application_8.1\ (for 8.1)

O problema é que, uma vez feita essa alteração, a variável de ambiente PATH aparentemente ainda está analisando a expansão antiga da variável APP_HOME. Então, por exemplo, depois que ela mudou o APP_HOME, o PATH ainda se refere ao diretório bin 7.0.

Alguma idéia de por que isso pode estar acontecendo? Parece-me que a variável PATH está armazenando em cache a expansão da variável de ambiente APP_HOME. Existe alguma maneira de desligar esse comportamento?

    
por jwir3 09.02.2011 / 18:24

2 respostas

4

As mudanças não são dinâmicas. Quando você altera variáveis de ambiente para o Windows, outros processos precisam ser reiniciados para que eles operem no novo ambiente.

Quando um processo começar, ele expandirá o valor da sua variável APP_HOME e o anexará ao seu PATH . Você precisará reiniciar o processo para reinicializar ou redefinir a variável PATH para ler o novo valor de APP_HOME .

    
por 09.02.2011 / 18:42
0

Este parece ser um erro IIS . Um reinício irá resolver o seu problema. Observe que matar w3wp e reciclar o pool de aplicativos não fará nada.

Você pode verificar se w3wp usa o caminho correto do ambiente via processexplorer.exe

    
por 31.08.2012 / 04:10