System.Environment.GetEnvironmentVariable 方法
本文提供了此 API 参考文档的补充说明。
该方法 GetEnvironmentVariable 从当前进程检索环境变量的值。
环境变量名称在类似 Unix 的系统上区分大小写,但在 Windows 上不区分大小写。
注意
托管调用方不会看到本机库进行的进程内环境修改。 相反,本机库不会看到托管调用方所做的此类修改。
GetEnvironmentVariable(String) 方法
该方法 GetEnvironmentVariable(String) 仅从当前进程的环境块中检索环境变量。 它等效于调用 GetEnvironmentVariable(String, EnvironmentVariableTarget) 值为 target
. EnvironmentVariableTarget.Process.
若要检索所有环境变量及其值,请调用该方法 GetEnvironmentVariables 。
在 Windows 系统上
在 Windows 系统上,当前进程的环境块包括:
由创建它的父进程提供的所有环境变量。 例如,从控制台窗口启动的 .NET 应用程序继承控制台窗口的所有环境变量。
如果没有父进程,则改用每台计算机和每用户环境变量。 例如,新的控制台窗口具有启动时定义的所有每台计算机和每用户环境变量。
在进程运行时添加到进程块的任何变量,方法是调用SetEnvironmentVariable(String, String)值为 <
a0/a0> 的方法或SetEnvironmentVariable(String, String, EnvironmentVariableTarget)方法 target
。 这些环境变量一直持续到 .NET 应用程序终止。
如果在进程启动后创建环境变量,则可以使用此方法仅检索通过调用 SetEnvironmentVariable(String, String) 方法或 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 值为 target
.EnvironmentVariableTarget.Process的方法创建的变量。
在类似 Unix 的系统上
在类似 Unix 的系统上,当前进程的环境块包含以下环境变量:
由创建它的父进程提供的所有环境变量。 对于从 shell 启动的 .NET 应用程序,这包括 shell 中定义的所有环境变量。
在进程运行时添加到进程块的任何变量,方法是调用SetEnvironmentVariable(String, String)值为 <
a0/a0> 的方法或SetEnvironmentVariable(String, String, EnvironmentVariableTarget)方法 target
。 这些环境变量一直持续到 .NET 应用程序终止。
类似 Unix 的系统上的 .NET 不支持每台计算机或每用户环境变量。
GetEnvironmentVariable(String, EnvironmentVariableTarget) 方法
若要检索所有环境变量及其值,请调用该方法 GetEnvironmentVariables 。
在 Windows 系统上
在 Windows 上,该 target
参数指定是从当前进程还是从当前用户或本地计算机的 Windows 操作系统注册表项中检索环境变量。 所有每用户和每台计算机环境变量都会自动复制到当前进程的环境块中,与创建 .NET 进程的父进程可用的任何其他环境变量一样。 但是,仅通过将方法或SetEnvironmentVariable(String, String, EnvironmentVariableTarget)方法target
EnvironmentVariableTarget.Process的值仅在进程持续时间内保留的方法添加到SetEnvironmentVariable(String, String)当前进程的环境变量块中。
在类似 Unix 的系统上
在类似 Unix 的系统上,该方法 GetEnvironmentVariable(String, EnvironmentVariableTarget)
仅支持 target
值 EnvironmentVariableTarget.Process 。 具有target
值EnvironmentVariableTarget.Machine或不受支持且EnvironmentVariableTarget.Usernull
返回的调用。
每个进程环境变量包括:
从父进程继承的那些继承者,通常是用于调用
dotnet.exe
或启动 .NET 应用程序的 shell。通过调用SetEnvironmentVariable(String, String)方法或值为 <
a0 target
/SetEnvironmentVariable(String, String, EnvironmentVariableTarget)a0> 的方法定义的那些值。 这些环境变量仅在进程或 .NET 应用程序终止之前dotnet
保留。