You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将appsettings.json嵌入资源并通过IConfiguration读取?

问题解答:嵌入appsettings.json后能否通过默认IConfiguration使用?

可以实现,但默认的IConfiguration不会自动读取嵌入资源中的appsettings.json,需要手动在配置构建流程中添加嵌入资源的读取逻辑。

具体步骤:

  1. 将appsettings.json设置为嵌入资源
    右键项目中的appsettings.json文件 → 属性 → 把「生成操作」改为「嵌入的资源」。注意资源的完整名称格式为[项目命名空间].appsettings.json,可在文件属性的「完整路径」中确认命名空间部分。

  2. 修改配置构建逻辑
    在Program.cs中扩展配置构建器,添加嵌入资源的读取流:

    var builder = WebApplication.CreateBuilder(args);
    
    // 读取嵌入的appsettings.json
    var assembly = typeof(Program).Assembly;
    using var configStream = assembly.GetManifestResourceStream("YourProjectNamespace.appsettings.json");
    if (configStream != null)
    {
        builder.Configuration.AddJsonStream(configStream);
    }
    
    // 后续正常构建应用
    var app = builder.Build();
    
    // ... 业务代码与中间件配置
    app.Run();
    

补充说明:

  • 务必将代码中的YourProjectNamespace替换为实际的项目命名空间,否则GetManifestResourceStream会返回null,无法读取配置。
  • 嵌入后的配置会被打包进exe文件中,发布时无需额外携带json文件,满足单文件分发需求。
  • 如果有多环境配置文件(如appsettings.Development.json),可重复上述逻辑添加对应的嵌入资源流。

内容的提问来源于stack exchange,提问作者boop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:40:33