C# ASP.Net核心应用程序和环境.GetEnvironmentVariables()奇怪的行为

C# ASP.Net核心应用程序和环境.GetEnvironmentVariables()奇怪的行为,c#,asp.net-core,C#,Asp.net Core,在调试ASP.Net核心应用程序时,我注意到了Environment.GetEnvironmentVariables()输出的奇怪之处。GetEnvironmentVariables()调用为我提供了包含75个条目的字典,而在我的计算机上配置的环境变量->属性->环境变量显示的条目很少,即大约20个条目。请查看下面的屏幕截图,其中显示了Environment.GetEnvironmentVariables()的输出和my computer->properties的环境变量。 所以我的问题是Env

在调试ASP.Net核心应用程序时,我注意到了Environment.GetEnvironmentVariables()输出的奇怪之处。GetEnvironmentVariables()调用为我提供了包含75个条目的字典,而在我的计算机上配置的环境变量->属性->环境变量显示的条目很少,即大约20个条目。请查看下面的屏幕截图,其中显示了Environment.GetEnvironmentVariables()的输出和my computer->properties的环境变量。
所以我的问题是Environment.GetEnvironmentVariables()从何处获取这些附加条目。我特别想知道以“ASPNETCORE”开头的条目的来源。它存放在别的地方吗。我确信这些附加条目未存储在我的应用程序的配置文件中。

不在用户或机器上的环境变量在进程中

VisualStudio会在启动应用程序时设置其中一些选项。您应该能够在项目的属性中修改它们

在解决方案资源管理器中右键单击项目,然后单击属性

打开调试选项卡,在这里可以添加/编辑/删除环境变量

这些环境变量存储在Properties/launchSettings.json中


然而,这个答案并不能完全回答这个问题,还有一些来自其他地方的环境变量。它们可能由ASP.NET Core本身/IIS模块/IIS Express设置。

另请参阅:
System.environment variableTarget
,此处提及,谢谢Juunas。我已经检查过了,但是屏幕截图中只显示了一个条目,但是还有将近50个条目是Environment.GetEnvironmentVariables()返回的,我找不到其源代码。非常正确。老实说,我不确定它们来自哪里,可能是ASP.NET Core,也可能是IIS Express。@ta.speot.is:已检查您提供的链接,看起来像EnvironmentVariableTarget。进程可能是其他条目的来源,但不确定。