C# dotnetcore:从cli获取环境并根据其值添加Json的更好方法
我想从命令行args中读取C# dotnetcore:从cli获取环境并根据其值添加Json的更好方法,c#,.net-core,C#,.net Core,我想从命令行args中读取environment,并使用它的值来构建配置本身。环境可以通过不同的方式传递(-Environment Staging,-e=Staging等),所以我自己不想解析参数。我发现我们可以先构建只读环境的配置,然后构建整个配置: var envName = new ConfigurationBuilder() .AddEnvironmentVariables() .AddCommandLine(args) .Build() .GetValu
environment
,并使用它的值来构建配置本身。环境可以通过不同的方式传递(-Environment Staging
,-e=Staging
等),所以我自己不想解析参数。我发现我们可以先构建只读环境的配置,然后构建整个配置:
var envName = new ConfigurationBuilder()
.AddEnvironmentVariables()
.AddCommandLine(args)
.Build()
.GetValue<string>("Environment");
var contentRoot = Directory.GetCurrentDirectory();
var configuration = new ConfigurationBuilder()
.SetBasePath(contentRoot)
.AddJsonFile($"Configuration/appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"Configuration/appsettings.{envName}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.AddCommandLine(args)
.Build();
var envName=new ConfigurationBuilder()
.AddenEnvironmentVariables()
.AddCommandLine(args)
.Build()
.GetValue(“环境”);
var contentRoot=Directory.GetCurrentDirectory();
var configuration=new ConfigurationBuilder()
.SetBasePath(contentRoot)
.AddJsonFile($“Configuration/appsettings.json”,可选:false,reloadOnChange:true)
.AddJsonFile($“Configuration/appsettings.{envName}.json”),可选:true,重载更改:true)
.AddenEnvironmentVariables()
.AddCommandLine(args)
.Build();
有更好的方法吗?我认为2.0中有一个bug应该在加载默认JSON之前在2.1中使用命令行参数进行修复,这样您可以在使用默认web主机构建器时通过命令行指定环境。我认为2.0中有一个bug应该在2.1中使用命令行参数进行修复在加载默认JSON之前,您可以在使用默认web主机生成器时通过命令行指定环境