.net 在Rider中将HostingEnvironment.EnvironmentName设置为Development
我的代码:.net 在Rider中将HostingEnvironment.EnvironmentName设置为Development,.net,.net-core,rider,.net,.net Core,Rider,我的代码: public static async Task Main(string[] args) { var host = new HostBuilder() .ConfigureAppConfiguration( (hostContext, configApp) => { configApp.SetBasePath(Direc
public static async Task Main(string[] args)
{
var host = new HostBuilder()
.ConfigureAppConfiguration(
(hostContext, configApp) =>
{
configApp.SetBasePath(Directory.GetCurrentDirectory());
configApp.AddJsonFile("appsettings.json");
configApp.AddJsonFile(
$"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json",
optional: true);
})
.Build();
await host.RunAsync();
}
在运行时,我看到HostingEnvironment.EnvironmentName
的值是Production
我试图在运行配置中设置以下环境变量,但它没有更改运行时:ASPNETCORE\u environment=Development
在哪里可以配置它?添加以下内容解决了这个问题,我在使用反编译的.NET源代码进行调试后找到了它。好像什么地方都没有记录,或者我遗漏了什么
public static async Task Main(string[] args)
{
var host = new HostBuilder()
.ConfigureHostConfiguration(configHost => configHost.AddEnvironmentVariables())
.ConfigureAppConfiguration(
(hostContext, configApp) =>
{
configApp.SetBasePath(Directory.GetCurrentDirectory());
configApp.AddJsonFile("appsettings.json");
configApp.AddJsonFile(
$"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json",
optional: true);
})
.Build();
await host.RunAsync();
}
添加的行是
ConfigureHostConfiguration
call。您是否有机会在文档中查看以下内容,但有一种方法可以直接从Rider使用设置环境变量。无需创建系统范围的环境变量即可在Rider中运行或调试项目。您可以快速轻松地在不同环境的多个配置文件之间切换。是的,我阅读了所有这些文档。这是误导。看到这个片段:,就是我用的那个。如果不先调用ConfigureHostConfiguration
,它就无法工作,就我所知,这在本文档中没有提及。我理解你的意思。我知道这会很快让人困惑。很高兴你找到了解决问题的办法。快乐编码。