为什么我无法获得EnvironmentVariable

时间:2019-07-11 11:44:33

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

使用系统/系统属性/环境变量我在Windows上设置了一个新变量,如此处所述:on youtube。我创建一个控制台应用程序,如此处所述:at Microsoft,并且可以访问先前设置的环境变量。那只是在我长大的应用程序中使用它的测试。在那里,我写了与测试应用程序第一行主要内容相同的行:

string value = Environment.GetEnvironmentVariable("MyVariable"); 

返回的值为空。 我可以想象到的唯一可以发挥作用的区别是,在项目属性/调试中已经设置了(其他)变量。

您知道为什么我无法从主应用程序访问我的EnvironmentVariable MyVariable吗?我可以检查什么进行调试?

我在主应用程序上通过代码设置了变量

Environment.SetEnvironmentVariable(key, value);

比下一次我启动该变量可用。但是实际上,这不是我要编写环境变量的方式。

1 个答案:

答案 0 :(得分:2)

根据这些信息很难说是怎么回事。

但是我猜测(基于您提到的YouTube视频)是您在Windows中为%USER%创建了一个环境变量,并以其他用户(即管理员)的身份运行Visual Studio。

来自Microsoft Docs

  

在Windows系统上,当前进程的环境块包括:

     

创建它的父进程提供给它的所有环境变量。例如,从控制台窗口启动的.NET应用程序继承了控制台窗口的所有环境变量。

     

如果没有父进程,则使用按计算机和按用户的环境变量。例如,新的控制台窗口在启动时会定义所有按计算机和按用户的环境变量。

尝试将环境变量添加为系统变量,然后重试。