gpt4 book ai didi

C# Environment.GetEnvironmentVariable(...) 不适用于 OSX

转载 作者:行者123 更新时间:2023-11-30 21:51:26 25 4
gpt4 key购买 nike

我正在 OSX 上运行一个控制台应用程序,它具有以下...

public static void main(string[] args)
{
string mongoEndpoint = Environment.GetEnvironmentVariable("MONGO_ENDPOINT");

if(string.IsNullOrEmpty(mongoEndpoint))
{
_log.Fatal("Invalid Mongo Endpoint");
throw new Exception("Invalid Mongo Endpoint");
}
}

我已将 MONGO_ENDPOINT 环境变量添加到我的 ~/.bash_profile 中,当我运行 echo $MONGO_ENDPOINT 时,它会输出正确的值。

但是,当我在 OSX 中从 Xamarin Studio 运行我的控制台应用程序时,它返回 null。

我尝试运行以下命令以查看它是否都是环境变量,并且它返回了正确的值。

Console.Out.WriteLine(Environment.GetEnvironmentVariable("HOME"));

它输出 /usr/myname 非常好。

为什么找不到这个环境变量?

最佳答案

如果 OS-X GUI 应用程序是从 Finder/Spotlight 启动的,它们将不会继承您通过 shell(bash、zsh 等...)定义的私有(private)/自定义环境变量。您有两个选择:

1) 从 cmd 行启动 Xamarin Studio,以便使用当前用户的环境:

/Applications/Xamarin\ Studio.app/Contents/MacOS/XamarinStudio &

2) 如果您希望用户环境变量可用于从 Finder/Spotlight 启动的 GUI 应用程序,您需要修改您的 /etc/launchd.conf,请参阅此 SO 答案:

https://stackoverflow.com/a/3756686/4984832

Runtime Configuration Guidelines

关于C# Environment.GetEnvironmentVariable(...) 不适用于 OSX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35643759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com