dotnet publish 不使用 appsettings.json

Posted

技术标签:

【中文标题】dotnet publish 不使用 appsettings.json【英文标题】:dotnet publish not consuming appsettings.json 【发布时间】:2021-01-23 16:52:44 【问题描述】:

当我使用 dotnet publish 时,我的 .NET Core 2.1 应用程序无法读取 appsettings.json。我已验证 appsettings.json is 确实已复制到 out 文件夹。

$ dotnet publish
$ cd the/publish/directory
$ ls -l

MyApp.dll
...
Other dlls
...
appsettings.json
appsettings.Development.json
appsettings.Staging.json
runtimes/
web.config
wwwroot/

当我从发布文件夹运行dotnet MyApp.dll 时,我的任何应用设置都没有加载。关于为什么的任何想法?

编辑:appsettings 在我们的开发环境中被正确使用。

【问题讨论】:

它会在开发环境中加载应用程序设置吗? 是的。在我们的暂存环境中(我们使用 dotnet publish) 【参考方案1】:

您的 Program.cs 中应该有类似的内容

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((hostingContext, config) =>
        
            config.AddJsonFile("appsettings.json", 
                optional: true, 
                reloadOnChange: true);
        )
        .ConfigureWebHostDefaults(webBuilder =>
        
            webBuilder.UseStartup<Startup>();
        );

【讨论】:

以上是关于dotnet publish 不使用 appsettings.json的主要内容,如果未能解决你的问题,请参考以下文章

使用appsettings.json配置Kestrel监听端口Dotnet core 2 preview 2

Dotnet 不知道特定于环境的 appsettings 文件

dotnet core 2.0中appSettings.json中的SMTP设置

如何在 dotnet core 3 控制台应用程序中更改时重新加载“appsettings.json”

Dotnet Core 3.1:如何将 AddJsonFile 与文件的绝对路径一起使用?

使用 dotnet publish 发布多个 web.config