如何在Azure Pipeline中根据环境使用不同的appsettings配置文件
Azure Pipeline 多环境appsettings配置方案
你可以通过以下两种常用方案实现按需加载对应环境的配置文件,不需要额外修改业务代码:
方案1:使用Azure Pipeline内置的文件转换任务
该方案通用度高,不依赖.NET本身的配置加载逻辑:
- 首先在Pipeline中定义4个对应部署环境的阶段(如Dev、Test、Staging、Prod)
- 在每个阶段的部署步骤前,添加
File transform文件转换任务,按如下规则配置:- 转换类型选择「JSON文件转换」
- 包或文件夹路径选择构建生成的应用发布包路径
- 转换规则填写:
appsettings.<当前环境标识>.json => appsettings.json
示例:Dev阶段规则配置为appsettings.Development.json => appsettings.json,Prod阶段规则配置为appsettings.Production.json => appsettings.json
- 后续部署步骤直接使用转换后的appsettings.json即可
方案2:结合ASP.NET Core默认配置加载逻辑
ASP.NET Core默认会优先加载和运行环境ASPNETCORE_ENVIRONMENT变量值匹配的appsettings文件,配置步骤更简单:
- 在每个部署阶段的变量配置中,新增名为
ASPNETCORE_ENVIRONMENT的变量,值对应你的环境标识(如Dev环境填Development、Prod环境填Production) - 部署时确保该环境变量会被注入到应用的运行环境中
- 应用启动时会自动优先读取
appsettings.{ASPNETCORE_ENVIRONMENT值}.json的配置项,覆盖默认appsettings.json中的同名配置
注意事项
- 提前确认所有appsettings文件都被设置为构建时复制到输出目录,项目的.csproj文件中需包含如下配置:
<ItemGroup> <None Update="appsettings*.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup>
- 如果是部署到Azure App Service,可直接在对应环境的应用服务配置页添加
ASPNETCORE_ENVIRONMENT应用设置,无需修改Pipeline配置
内容的提问来源于stack exchange,提问作者Denilson Raimundo de Paula
相关产品推荐
相关产品推荐

