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

问题描述

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

但是,这不适用于 C#。


我尝试了什么: foreach(Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process).Keys 中的字符串名称){ Console.Write(name + "="); Console.WriteLine(Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process)[名称]); 这确实打印了几个环境变量。不是我需要的。


当我尝试时:

        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 没有帮助。环境变量不是新的。

标签: c#.net.net-core

解决方案


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

open /Applications/Visual\ Studio.app 

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

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


推荐阅读