在 MacOS、.Net Core 3.1 / .Net 5.0 上的 C# 中看不到系统环境变量。(视觉工作室)

And*_*rei 6 .net c# .net-core

我正在尝试在代码中使用环境变量。首先,我已经将它们设置在 ~/.zprofile 中,我可以通过getenvshell 以及 Java、NodeJS、Python 中的相关方法接收它们。

但是,这不适用于 C#。


我尝试过的:

foreach (String name in Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process).Keys)
{
    Console.Write(name + "="); 
    Console.WriteLine(Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process)[name]);
}
Run Code Online (Sandbox Code Playgroud)

这确实打印了几个环境变量。不是我需要的。


当我尝试时:

foreach (String name in Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User).Keys)
{
    // Never get here                                                                                             
}

foreach (String name in Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine).Keys)
{
    // Never get here                                                                                                }
}
Run Code Online (Sandbox Code Playgroud)

这什么也不打印。


如何找到我的环境变量?谢谢。

编辑:通过 GUI 重新启动 Visual Studio 没有帮助。环境变量并不是新的。

And*_*rei 4

一旦我关闭 Visual Studio 并从终端打开它

open /Applications/Visual\ Studio.app 
Run Code Online (Sandbox Code Playgroud)

我在这里看到了所有环境变量:Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process) 与:Environment.GetEnvironmentVariables() 相同

因此,该问题似乎是 Mac 上的 Visual Studio 特有的,并且有特定的解决方案。