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

.NET Core中如何基于发布配置文件设置appsettings值?

.NET 6.0 基于Pubxml实现Appsettings.json发布时动态修改配置

一、mordor-prod.pubxml配置(发布对应配置文件)

直接打开项目里的Properties/PublishProfiles/mordor-prod.pubxml,添加以下内容,确保发布时包含主配置文件和prod环境的客户端配置文件:

<ItemGroup>
  <Content Include="appsettings.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <CopyToPublishDirectory>Always</CopyToPublishDirectory>
  </Content>
  <Content Include="appsettings.Mordor.PROD.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <CopyToPublishDirectory>Always</CopyToPublishDirectory>
  </Content>
</ItemGroup>

二、mordor-stage.pubxml配置(修改Client_Version节点)

1. 创建XDT转换文件

在项目根目录新建appsettings.stage.xdt文件,内容写死要替换的Client_Version节点:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <Client_Version xdt:Transform="Replace">
    <Name_of_client>Mordor</Name_of_client>
    <Environment_of_client>STAGE</Environment_of_client>
  </Client_Version>
</configuration>

注意:这个XDT文件用XML结构对应原JSON的层级,xdt:Transform="Replace"表示直接替换整个Client_Version节点。

2. 配置pubxml执行转换

打开Properties/PublishProfiles/mordor-stage.pubxml,添加转换任务和文件发布规则:

<Target Name="TransformAppSettings" AfterTargets="CopyAllFilesToSingleFolderForPublish">
  <TransformXml Source="appsettings.json" Transform="appsettings.stage.xdt" Destination="$(PublishDir)appsettings.json" />
</Target>

<ItemGroup>
  <!-- 确保主配置和stage环境的客户端配置被发布 -->
  <Content Include="appsettings.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <CopyToPublishDirectory>Always</CopyToPublishDirectory>
  </Content>
  <Content Include="appsettings.Mordor.STAGE.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <CopyToPublishDirectory>Always</CopyToPublishDirectory>
  </Content>
  <!-- 不让XDT转换文件被发布到目标服务器 -->
  <Content Include="appsettings.stage.xdt">
    <CopyToPublishDirectory>Never</CopyToPublishDirectory>
  </Content>
</ItemGroup>

三、验证发布效果

  • 选择mordor-prod配置发布,查看发布目录:appsettings.json保持原配置,同时包含appsettings.Mordor.PROD.json。
  • 选择mordor-stage配置发布,查看发布目录:appsettings.json里的Client_Version节点已替换为STAGE环境配置,同时包含appsettings.Mordor.STAGE.json。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 19:03:11