【问题标题】:How to use publish profile to change a value is appsettings.json如何使用发布配置文件更改值是 appsettings.json
【发布时间】:2020-03-19 17:55:40
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    是的,这很容易。目前,您最有可能使用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阅读更多详细信息。

    【讨论】:

    • @MistyD 我的回答有用吗?
    • 嗨@citronas 我的入口点与你的不同public static IWebHostBuilder CreateWebHostBuilder(string[] args) =&gt; WebHost.CreateDefaultBuilder(args) .UseStartup&lt;Startup&gt;();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    相关资源
    最近更新 更多