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

Azure DevOps Publish场景下发布错误appsettings.json问题咨询

解决方案
  • 方案1:使用命令行参数直接控制发布优先级
    你可以在执行dotnet publish命令时添加CopyToPublishDirectoryRespectProjectPriority参数,该参数从.NET Core 3.0版本开始支持,作用是让发布流程按照项目依赖的层级判定同名文件优先级,顶层主项目的文件优先级最高,会自动覆盖下层依赖项目的同名文件,无需额外操作:
    dotnet publish -c Release /p:CopyToPublishDirectoryRespectProjectPriority=true
    
  • 方案2:修改被引用exe项目的文件复制属性
    直接在被引用的可执行类库项目中,关闭其appsettings.json的发布复制逻辑,即可避免依赖项目的配置文件被输出到发布目录。在对应项目的.csproj文件中添加如下配置:
    <ItemGroup>
      <None Update="appsettings.json">
        <CopyToOutputDirectory>Never</CopyToOutputDirectory>
        <CopyToPublishDirectory>Never</CopyToPublishDirectory>
      </None>
      <!-- 如果有环境特定配置文件也可以一并配置 -->
      <None Update="appsettings.*.json">
        <CopyToOutputDirectory>Never</CopyToOutputDirectory>
        <CopyToPublishDirectory>Never</CopyToPublishDirectory>
      </None>
    </ItemGroup>
    
  • 方案3:在主项目中配置发布规则锁定配置文件优先级
    如果你不想修改依赖项目的配置,可以直接在主项目的.csproj文件中添加如下配置,强制发布时优先使用主项目的appsettings.json:
    <PropertyGroup>
      <CopyToPublishDirectoryRespectProjectPriority>true</CopyToPublishDirectoryRespectProjectPriority>
    </PropertyGroup>
    <ItemGroup>
      <Content Update="appsettings.json">
        <CopyToPublishDirectory>Always</CopyToPublishDirectory>
        <TargetPath>appsettings.json</TargetPath>
      </Content>
    </ItemGroup>
    
    如果使用Visual Studio的可视化发布流程,也可以将上述属性添加到对应的.pubxml发布配置文件中,无需每次执行命令时手动传参。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:36:03