我尝试在代码中使用环境变量,首先我在~/.zprofile中设置了环境变量,我可以通过shell中的getenv和Java、NodeJS、Python中的相关方法接收环境变量。
但是,这在C#中不起作用。
我尝试了:foreach(环境.获取环境变量(环境变量目标.进程).键中的字符串名称){控制台.写入(名称+“=”);控制台.WriteLine(环境.获取环境变量(环境变量目标.进程)[名称]);}这确实打印了几个env变量。不是我需要的那些。
当我尝试时:
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没有帮助。env变量不是新的。
2条答案
按热度按时间jtw3ybtb1#
一旦我关闭了VisualStudio并从终端打开它
我在这里看到了所有的env变量:环境.获取环境变量(环境变量目标.进程),它与以下内容相同:获取环境变量()
因此,这个问题似乎是Mac上的Visual Studio特有的,有一个特定的解决方案。
af7jpaap2#
从版本17.5.1 Visual Studio 2022 for Mac开始,你可以进入项目属性〉〉运行〉〉配置〉〉默认〉〉环境变量部分,你可以点击添加变量和值,在那里VS可以看到它。这样你就不需要从终端启动它了。现在对我来说,我得到了正确的路径,但是我的单元测试无法启动nuget chrome驱动程序。我需要找出为什么chromedriveriderexe被复制到输出文件夹(bin/Debug)而不是Unix/mac可执行文件。尽管Geckodriver工作正常。