【问题标题】:Environment.SetEnvironmentVariable does not set any valueEnvironment.SetEnvironmentVariable 未设置任何值
【发布时间】:2018-03-21 04:46:41
【问题描述】:

我只遇到了这个问题

  • Windows Server 2016 (Win2016) 和
  • VisualStudio-redistributable 2015 (VS-redist-2015 = msvcp14)

c# Environment.SetEnvironmentVariable(key,val, EnvironmentVariableTarget.Process) 似乎没有设置可以使用 getenv() 在本机 C 应用程序上检索的值

native-C 应用 getenv() 可以使用 Win2016 + VS-redist-2010 读取值 OK

这在使用 VS-redist-2015 的 Windows Server 2012 和 2008 中运行良好

任何想法/建议将不胜感激。

【问题讨论】:

  • 一般情况下,环境变量只在创建进程和创建进程的“子进程”中可见

标签: c# c mapserver getenv


【解决方案1】:

默认情况下Environment.SetEnvironmentVariable(string <variable>, string <value>) 存储当前进程的变量。为了更加确定您需要使用包含目标Environment.SetEnvironmentVariable(string <variable>, string <value>, EnvironmentVariableTarget <target>) 的重载。这样您就可以将目标设置为MachineUser

【讨论】:

  • 我们的目标是 EnvironmentVariableTarget.Process,它适用于除 Win2016+VS-redist-2015 之外的所有东西)现在尝试使用 EnvironmentVariableTarget.Machine。感谢您的提示
  • EnvironmentVariableTarget.Machine 也不起作用。
猜你喜欢
  • 2022-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 2011-09-11
相关资源
最近更新 更多