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

为什么发布.NET 5 API项目时App.config自定义配置会丢失?

问题根因
  • .NET 5(.NET Core系列版本)的默认MSBuild生成、发布流程内置了App.config兼容转换逻辑:为了兼容.NET Framework类库的运行要求,会自动重写App.config文件,插入runtime、startup等节点,你原文件中的自定义内容、注释都会被覆盖,和你设置的「始终复制」属性不冲突,因为这个转换逻辑是在文件复制到输出目录前执行的。
可用解决方案

方案1:禁用默认配置转换逻辑(推荐)

直接修改项目的.csproj文件,在顶层<PropertyGroup>节点中加入以下2条配置即可:

<PropertyGroup>
  <!-- 其他原有配置 -->
  <GenerateSupportedRuntime>false</GenerateSupportedRuntime>
  <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
</PropertyGroup>

保存后重新发布,App.config就不会被自动改写,会保留你原有的全部内容。

方案2:绕开自动转换逻辑

如果你不想修改项目生成配置,可以用重命名+后期生成事件的方式实现:

  1. 将你原有的App.config重命名为App.Raw.config,属性依然设置为「始终复制」
  2. 打开项目属性-「生成事件」面板,在「后期生成事件命令行」中加入以下命令:
copy /Y "$(ProjectDir)App.Raw.config" "$(TargetDir)App.config"

这个命令会在生成、发布的最后一步,用你保留的原始配置覆盖系统自动生成的App.config。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 11:12:01