C# 为什么我不';无法获取环境变量

C# 为什么我不';无法获取环境变量,c#,windows,asp.net-core,.net-core,environment-variables,C#,Windows,Asp.net Core,.net Core,Environment Variables,使用系统/系统属性/环境变量,我在我的窗口上设置了一个新变量,如下所述:。我创建了一个控制台应用程序,如下所述:并且可以访问前面的set环境变量。这只是在我的成人应用程序中使用它的一个测试。在那里,我写了与我的测试应用程序主第一行相同的行: string value = Environment.GetEnvironmentVariable("MyVariable"); 并且返回的值为null。 我可以想象的唯一不同之处是,在项目属性/Debug中,已经设置了一个(其他)变量 您知道为什么我无

使用系统/系统属性/环境变量,我在我的窗口上设置了一个新变量,如下所述:。我创建了一个控制台应用程序,如下所述:并且可以访问前面的set环境变量。这只是在我的成人应用程序中使用它的一个测试。在那里,我写了与我的测试应用程序主第一行相同的行:

string value = Environment.GetEnvironmentVariable("MyVariable"); 
并且返回的值为null。 我可以想象的唯一不同之处是,在项目属性/Debug中,已经设置了一个(其他)变量

您知道为什么我无法从主应用程序访问环境变量MyVariable吗?我可以检查哪些调试

我通过主应用程序的代码设置变量

Environment.SetEnvironmentVariable(key, value);

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

根据这些信息很难说发生了什么

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

从:

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

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

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


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

如何运行代码?如果在VS中,您是否在设置环境变量后重新启动VS?如果是从控制台启动的,在设置环境变量后是否启动了新的控制台?在启动控制台应用程序的同一DOS提示符中键入
SET
;这是您的应用程序将能够检索的变量。请记住(JonSkeet的conmen中暗示),当应用程序启动时,环境变量是从现有系统集有效克隆的。您可以创建新的存储库并在环境中设置它们,但它们不会更新原始存储库。自己试试:打开两个dos窗口,一个键入
set a=b
,另一个键入
set a=c
。然后在每一页中输入set;他们维护自己的汽车,你不能在一个dos窗口中从另一个窗口影响VARother@JonSkeet我现在尝试重新启动,没有区别。在我的测试应用程序中工作,而不是在我的主应用程序中。@CaiusJard:它现在被称为
命令提示符@CaiusJard我通过Visual Studio F5启动我的应用程序。那么在哪里写“SET”?我真的怀疑你猜这是基于什么,因为So不是一个猜测游戏,所以在这个时候,这似乎与我无关。投票结束这个问题是。如果你看YouTube视频,你会看到这个变量被添加为用户变量而不是系统变量。Frank Mehlhop提到他在YouTube视频中添加了变量,我知道了!我必须将变量设置为系统变量,然后重新启动visual studio。它正在工作。非常感谢您的帮助!!!:-)