首页 > 解决方案 > 如何使用发布配置文件更改值是 appsettings.json

问题描述

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

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

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

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

解决方案


是的,这很容易。目前,您很可能将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.

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


推荐阅读