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

How to switch configuration while debugging .Net core 2.x app?

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

到目前为止我所做的是:

  1. 已添加 appsetteings.Development.json、appsetteings.Production.json

  2. 在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();
    }
    
  3. 在startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.Configure<dynamic>(Configuration);
    }
    

问题是每当我调试我的代码时,它总是从 appsettings.Development.json.

获取设置

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

项目属性的设置导致在调试期间使用开发环境设置。

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

ASPNETCORE_ENVIRONMENT |发展

如果您删除此标志并调试您的应用程序,它应该 运行 没有开发设置。

可以找到官方文档here