如何使用发布配置文件更改值是appsettings.json

时间:2020-03-19 17:55:40

标签: asp.net-core asp.net-core-mvc

我正在使用.NET Core 3.0 ASP.net,而我的appsettings.json看起来像这样

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Test":false 
}

有什么方法可以配置某个发布配置文件(pubxml)来将Test的值更改为true或false?

1 个答案:

答案 0 :(得分:0)

是的,这很容易。当前,您很可能使用Debug解决方案配置进行本地开发。假设您也有Release作为解决方案配置,并希望在使用发布配置文件发布到Azure时更改某些设置。

假设您使用的是.NET Core 3.1(也适用于2.x,但语法不同),则可以执行以下代码:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            webBuilder.UseEnvironment(Environment);
        });

public static string Environment
{
    get
    {
        string environmentName;
#if DEBUG
        environmentName = "development";
#elif RELEASE
        environmentName = "production";
#endif

        return environmentName;
    }
}

还要创建一个appsettings.product.json,您可以在其中覆盖特定的值。

使用发布配置文件时,只需在发布对话框中选择Release作为解决方案配置。这样,您的应用程序将加载appsettings.json的默认值,这些默认值将被appsettings.production.json中的值覆盖。

您可以在docs中阅读更多详细信息。

相关问题