Metodi System.Environment.GetEnvironmentVariable
Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.
Il GetEnvironmentVariable metodo recupera il valore di una variabile di ambiente dal processo corrente.
I nomi delle variabili di ambiente fanno distinzione tra maiuscole e minuscole nei sistemi simili a Unix, ma non fanno distinzione tra maiuscole e minuscole in Windows.
Nota
Le modifiche dell'ambiente in-process apportate dalle librerie native non vengono visualizzate dai chiamanti gestiti. Al contrario, tali modifiche apportate dai chiamanti gestiti non vengono visualizzate dalle librerie native.
Metodo GetEnvironmentVariable(String)
Il GetEnvironmentVariable(String) metodo recupera una variabile di ambiente solo dal blocco di ambiente del processo corrente. Equivale a chiamare il GetEnvironmentVariable(String, EnvironmentVariableTarget) metodo con il target
valore .EnvironmentVariableTarget.Process
Per recuperare tutte le variabili di ambiente insieme ai relativi valori, chiamare il GetEnvironmentVariables metodo .
Nei sistemi Windows
Nei sistemi Windows il blocco di ambiente del processo corrente include:
Tutte le variabili di ambiente fornite dal processo padre che lo ha creato. Ad esempio, un'applicazione .NET avviata da una finestra della console eredita tutte le variabili di ambiente della finestra della console.
Se non è presente alcun processo padre, vengono invece usate variabili di ambiente per computer e per utente. Ad esempio, una nuova finestra della console include tutte le variabili di ambiente per computer e per utente definite al momento dell'avvio.
Tutte le variabili aggiunte al blocco di processo durante l'esecuzione del processo chiamando il SetEnvironmentVariable(String, String) metodo o il SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metodo con un
target
valore .EnvironmentVariableTarget.Process Queste variabili di ambiente vengono mantenute fino al termine dell'applicazione .NET.
Se le variabili di ambiente vengono create dopo l'avvio del processo, è possibile usare questo metodo per recuperare solo le variabili create chiamando il SetEnvironmentVariable(String, String) metodo o il SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metodo con un target
valore .EnvironmentVariableTarget.Process.
Nei sistemi simili a Unix
Nei sistemi simili a Unix, il blocco di ambiente del processo corrente include le variabili di ambiente seguenti:
Tutte le variabili di ambiente fornite dal processo padre che lo ha creato. Per le applicazioni .NET avviate da una shell, sono incluse tutte le variabili di ambiente definite nella shell.
Tutte le variabili aggiunte al blocco di processo durante l'esecuzione del processo chiamando il SetEnvironmentVariable(String, String) metodo o il SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metodo con un
target
valore .EnvironmentVariableTarget.Process Queste variabili di ambiente vengono mantenute fino al termine dell'applicazione .NET.
.NET nei sistemi simili a Unix non supporta variabili di ambiente per computer o per utente.
Metodo GetEnvironmentVariable(String, EnvironmentVariableTarget)
Per recuperare tutte le variabili di ambiente insieme ai relativi valori, chiamare il GetEnvironmentVariables metodo .
Nei sistemi Windows
In Windows, il target
parametro specifica se la variabile di ambiente viene recuperata dal processo corrente o dalla chiave del Registro di sistema operativo Windows per l'utente corrente o il computer locale. Tutte le variabili di ambiente per utente e per computer vengono copiate automaticamente nel blocco di ambiente del processo corrente, come sono tutte le altre variabili di ambiente disponibili per il processo padre che ha creato il processo .NET. Tuttavia, le variabili di ambiente aggiunte solo al blocco di ambiente del processo corrente chiamando il SetEnvironmentVariable(String, String) metodo o il SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metodo con un target
valore di EnvironmentVariableTarget.Process persistenza solo per la durata del processo.
Nei sistemi simili a Unix
Nei sistemi simili a Unix il GetEnvironmentVariable(String, EnvironmentVariableTarget)
metodo supporta solo il target
valore EnvironmentVariableTarget.Process . Le chiamate con un target
valore di EnvironmentVariableTarget.Machine o EnvironmentVariableTarget.User non sono supportate e restituiscono null
.
Le variabili di ambiente per processo sono:
Ereditati dal processo padre, in genere la shell usata per richiamare
dotnet.exe
o avviare l'applicazione .NET.Quelli definiti chiamando il SetEnvironmentVariable(String, String) metodo o il SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metodo con un
target
valore .EnvironmentVariableTarget.Process Queste variabili di ambiente vengono mantenute solo fino al termine deldotnet
processo o dell'applicazione .NET.