【问题标题】:Set environment variables in Unix/Linux environment with .NET Core [duplicate]使用 .NET Core 在 Unix/Linux 环境中设置环境变量 [重复]
【发布时间】:2019-06-17 16:54:30
【问题描述】:

有没有办法使用 .NET Core 在 Unix/Linux 机器(不是进程)上设置环境变量?

我注意到我可以在 Windows 上使用 Environment.SetEnvironmentVarible,但是,在搜索后我没有找到 Unix/Linux 系统的等效项。

【问题讨论】:

  • 我没有看到这篇文章。这是我一直在寻找的答案,所以我的问题是重复的。

标签: c# .net-core environment-variables


【解决方案1】:

Environment.SetEnvironmentVariable 也适用于 Linux 等。

但要注意只设置了当前进程环境变量,而不是像 Windows 上的机器或用户环境变量:

在 macOS 和 Linux 系统上的 .NET Core 上,忽略对值为 EnvironmentVariableTarget.Machine 或 EnvironmentVariableTarget.User 的 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 方法的调用。

来自Environment.SetEnvironmentVariable Method

【讨论】:

  • 我实际上是在寻找一种方法来设置机器变量而不是过程变量。
  • Linux 上没有区分进程、用户和机器变量。所有环境变量都被同等对待。而且一个进程只能改变它自己和它产生的任何子进程的环境变量。