Il programma di installazione modifica la variabile PATH, le modifiche non vengono visualizzate nella shell dei comandi

StackOverflow https://stackoverflow.com/questions/40311

Domanda

Ho aggiunto un'azione di installazione personalizzata al mio programma di installazione per aggiungere una delle mie directory di installazione alla variabile di ambiente PATH di sistema.Dopo aver eseguito il programma di installazione, la variabile PATH riflette le modifiche (quando accedo tramite l'applet Pannello di controllo::Sistema), ma quando avvio una nuova shell di comandi, la variabile PATH non riflette le modifiche.C'è qualcosa che non riesco a fare che causa questo?

È stato utile?

Soluzione

Penso che questo dipenda da come stai avviando la nuova shell dei comandi.Ad esempio, quando si modifica la variabile di ambiente PATH in Proprietà di sistema, la modifica non viene applicata finché non si apre un nuovo prompt dei comandi.Penso che quando avvii un nuovo processo "cmd" (ad esempio dalla finestra di dialogo Esegui), ottieni una nuova copia di tutte le variabili di ambiente, ma se avvii il prompt dei comandi in un modo diverso, non lo fai.

Per qualcosa fatto tramite uno script del genere, potrebbe essere necessario riavviare prima di notare il cambiamento.

Altri suggerimenti

Come stai avviando la shell dei comandi?Con il TaskManager?

Sospetto che potresti avviarlo da Explorer: se ricordo bene, questo potrebbe significare che stai ereditando la variabile PATH dei processi principali (Windows Explorer in questo caso).Poiché è stato impostato prima dell'esecuzione del programma di installazione, viene visualizzato il vecchio valore.

Non sono sicuro che questo aiuti...

http://support.microsoft.com/kb/310519 dice che per le variabili di ambiente del sistema (di cui PATH è una) è necessario un riavvio, anche se ho la sensazione che disconnettersi e riconnettersi potrebbe essere sufficiente.

Perché stai utilizzando una CustomAction per questo?Windows Installer supporta la modifica delle variabili di ambiente in modo nativo.Inoltre, penso che Windows Installer invii un messaggio broadcast per aggiornare il sistema quando cambiano le variabili di ambiente.Ciò potrebbe significare che non è necessario riavviare...ma è da un po' che non ci provo YMMV.

Come stai aggiungendo la variabile d'ambiente?

Senza utilizzare strumenti esterni, puoi aggiungerlo al registro.Quindi, il test di apertura di una nuova finestra di comando rifletterà la modifica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top