我正在尝试在代码中使用环境变量。
首先,我已经在~/.zprofile中设置了它们,我可以通过shell中的getenv
和Java、NodeJS、Python中的相关方法接收它们。
然而,这在C#中不起作用。
我尝试过:
foreach (String name in Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process).Keys)
{
Console.Write(name + "=");
Console.WriteLine(Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process)[name]);
}
这会打印出几个环境变量,但不是我需要的那些。
当我尝试:
foreach (String name in Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User).Keys)
{
// Never get here
}
foreach (String name in Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine).Keys)
{
// Never get here }
}
这将不会打印任何内容。
我该如何找到我的环境变量?谢谢。
编辑:通过GUI重新启动Visual Studio没有帮助。环境变量并没有更新。
EnvironmentVariableTarget.Machine
和EnvironmentVariableTarget.User
的文档明确指出:“此值仅应在运行在Windows系统上的.NET实现中使用。” - Jon Skeet