C# 调试.Net core 2.x应用程序时如何切换配置?

C# 调试.Net core 2.x应用程序时如何切换配置?,c#,configuration,.net-core,asp.net-core-2.0,appsettings,C#,Configuration,.net Core,Asp.net Core 2.0,Appsettings,我一直在寻找向我的dot net core 2.0 web API添加配置的正确方法 到目前为止,我所做的是: 添加了appsettings.Development.json、appsettings.Production.json 在program.cs中: public static IWebHost BuildWebHost(string[] args) { return WebHost.CreateDefaultBuilder(args) .UseStartup&l

我一直在寻找向我的dot net core 2.0 web API添加配置的正确方法

到目前为止,我所做的是:

  • 添加了appsettings.Development.json、appsettings.Production.json

  • 在program.cs中:

    public static IWebHost BuildWebHost(string[] args)
    {
        return WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .ConfigureAppConfiguration((hostContext, config) =>
            {
                var env = hostContext.HostingEnvironment;
                config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
            })
            .Build();
    }
    
    公共静态IWebHost BuildWebHost(字符串[]args)
    {
    返回WebHost.CreateDefaultBuilder(args)
    .UseStartup()
    .ConfigureAppConfiguration((主机上下文,配置)=>
    {
    var env=hostContext.HostingEnvironment;
    config.AddJsonFile(“appsettings.json”,可选:true,reloadOnChange:true)
    .AddJsonFile($“appsettings.{env.EnvironmentName}.json”,可选:true,重载更改:true);
    })
    .Build();
    }
    
  • 在startup.cs中

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.Configure<dynamic>(Configuration);
    }
    
    public void配置服务(IServiceCollection服务)
    {
    services.AddMvc();
    服务。配置(配置);
    }
    
  • 问题是,每当我调试代码时,它总是从
    appsettings.Development.json
    获取设置


    我还发现无论我选择在哪个环境中进行调试,
    hostContext.HostingEnvironment.environment name
    总是作为开发来的。

    有一个项目属性设置导致在调试期间使用开发环境设置

    开放项目属性 导航到调试页面 在环境变量部分,您将看到:

    ASPNETCORE|U环境|开发

    如果删除此标志并调试应用程序,则应用程序应在没有开发设置的情况下运行


    可以在官方文档中找到

    我建议您在该问题作为离题结束之前编辑标题(将其设置为如何提问)。我们可以为答案添加参考链接,但您不应该请求。非常感谢,这非常有帮助。如果是控制台应用程序呢?