简体   繁体   English

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

[英]Do not see system environment variables in C# on MacOS, .Net Core 3.1 / .Net 5.0. (Visual Studio)

I am trying to use an environment variable in a code.我正在尝试在代码中使用环境变量。 First of all, I have set them in ~/.zprofile, I can receive them via getenv in shell and via relevant methods in Java, NodeJS, Python.首先,我在~/.zprofile中设置了它们,我可以通过shell中的getenv和Java中的相关方法接收它们,NodeJS,Python。

However, this doesn't work with C#.但是,这不适用于 C#。


What I tried: foreach (String name in Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process).Keys) { Console.Write(name + "=");我试过什么: Console.WriteLine(Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process)[name]); Console.WriteLine(Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process)[名称]); } This does print several env variables.这确实打印了几个环境变量。 Not the ones I need.不是我需要的。


And when I try:当我尝试时:

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

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

This prints nothing.这什么都不打印。


How can I find my environment variables?如何找到我的环境变量? Thanks谢谢

Edit: restarting Visual Studio via GUI didn't help.编辑:通过 GUI 重新启动 Visual Studio 没有帮助。 The env variables were not new. env 变量不是新的。

Once I closed Visual Studio and opened it from the terminal一旦我关闭 Visual Studio 并从终端打开它

open /Applications/Visual\ Studio.app 

I saw all of my env variables here: Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process) which is the same as: Environment.GetEnvironmentVariables()我在这里看到了我所有的环境变量:Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process) 与:Environment.GetEnvironmentVariables() 相同

So the issue seems specific to Visual studio on Mac, with a specific solution.所以这个问题似乎特定于 Mac 上的 Visual Studio,有特定的解决方案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ASP.NET 内核 5.0。 脚手架 controller 变量名称。 C# - ASP.NET Core 5.0. Scaffolded controller variable names. C# .NET Core 3.1 / .NET 5.0 中的 System.Security.CodeAccessPermission 是否已过时? - Is System.Security.CodeAccessPermission obsolete in .NET Core 3.1 / .NET 5.0? Visual Studio Net Core:切换多个项目的环境变量 - Visual Studio Net Core: Switch Environment Variables for Multiple Projects C# - .Net Core 5.0 端口映射 - C# - Port Mapping with .Net Core 5.0 .NET CORE 6 中的 Visual Studio C# App 版本(用于在 .Net Framework 4.6.2 中执行) - Visual Studio C# App Version in .NET CORE 6 (used to do in in .Net Framework 4.6.2) 如何在 ASP.NET Core 3.1 中使用 Visual Studio 2019 在 docker 中设置环境? - How to set the environment in a docker with Visual Studio 2019 in ASP.NET Core 3.1? System.Environment.OSVersion .NET Core 5.0 Framework替换? - System.Environment.OSVersion .NET Core 5.0 Framework replacement? C#.Net Core 3.1:难以使用 System.Net.IPAddress 字节顺序交换 - C# .Net Core 3.1: Having difficulty using System.Net.IPAddress byte order swapping Docker 容器环境变量中的 .Net Core 3.1 应用程序不起作用 - .Net Core 3.1 app in Docker container Environment Variables not working .NET Core 3.1 环境不正确 - .NET Core 3.1 Environment not correct
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM