首页 > 解决方案 > ASP.NET CORE 的环境变量如何注入应用程序 (ASPNETCORE_*)?

问题描述

当我在 Visual Studio 中启动 Asp.Net Core 应用程序时,它会dotnet.exe以我的 dll 作为参数运行该文件。

此外,我看到应用程序可以访问许多普通控制台应用程序中不可用的不同环境变量,例如ASPNETCORE_CONTENTROOT. 这个做了一些魔术,允许appsettings.json直接从项目目录中读取文件,而不是bin/debug. 我想在我的控制台应用程序中实现相同的功能,以避免将文件复制到bin/debug文件夹,但我无法弄清楚是什么注入了这些变量。

那么问题来了,这些环境变量究竟是如何出现在 Asp.Net 应用程序中的呢?

我怀疑 WebHost 或一些核心库会这样做,但找不到任何证据或任何代码来弄清楚源目录是如何被读取的。

PS我不是想找出如何通过配置使环境变量可用(例如AddEnvironmentalVariables),而是首先它们如何成为进程本身中的环境变量(以便以后可以通过配置读取) .

我对此感兴趣有两个原因:弄清楚如何ASPNETCORE_CONTENTROOT设置为控制台应用程序做同样的事情并且出于好奇:)

标签: c#asp.net-core.net-coreenvironment-variables

解决方案


推荐阅读