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

.NET Core 6.0控制台应用发布后运行报错:无法读取app.config

解决.NET Core 6自包含部署后无法读取app.config的问题

问题核心原因

.NET Core控制台应用发布时,app.config会被重命名为[可执行文件名称].config,如果该文件未被正确复制到发布目录,或者代码中配置加载逻辑未匹配这个命名,就会出现读取失败的情况。

具体解决方案

  • 设置app.config的复制属性
    在Visual Studio中右键项目里的app.config文件,选择「属性」,将「复制到输出目录」设置为「始终复制」或「如果较新则复制」。这能确保发布过程中文件被复制到目标目录。

  • 确认发布目录中的配置文件名称
    发布完成后,检查发布文件夹,确认存在[你的exe名称].config文件(比如你的exe是MyApp.exe,则配置文件应为MyApp.exe.config),且文件内容与项目中的app.config一致。如果缺失,手动复制项目中的app.config并重命名为对应名称后测试。

  • 修正配置加载逻辑(若使用ConfigurationManager)
    如果你依赖System.Configuration.ConfigurationManager读取配置,确保已安装对应的NuGet包,并在代码中直接使用ConfigurationManager即可,它会自动识别同目录下的[exe名称].config文件:

    var value = ConfigurationManager.AppSettings["YourKey"];
    

    若使用IConfiguration加载,需指定正确的配置文件名:

    using System.Reflection;
    using Microsoft.Extensions.Configuration;
    
    var configBuilder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddXmlFile($"{Assembly.GetExecutingAssembly().GetName().Name}.config", optional: false);
    var config = configBuilder.Build();
    var value = config["AppSettings:YourKey"];
    
  • 检查发布配置文件(.pubxml)
    打开项目中的发布配置文件(位于Properties\PublishProfiles下),确保包含以下配置,避免配置文件被排除:

    <ItemGroup>
      <Content Include="app.config">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
      </Content>
    </ItemGroup>
    

内容的提问来源于stack exchange,提问作者Joan Wojcicki Fortney

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:06:01