如何配置.NET Core Razor Pages的appsettings.Production.json生产环境参数
解决方案
你遇到的自动生成appsettings.Production.json覆盖连接字符串的问题,是Visual Studio发布Web应用的默认行为,和Program.cs中的默认配置逻辑无关,可通过以下任意一种方案解决:
方案1:手动添加生产环境配置文件(最推荐)
直接在项目中自定义appsettings.Production.json,优先级高于发布自动生成的逻辑,操作步骤:
- 在解决方案资源管理器中右键你的项目 → 选择「添加」→「新建项」→ 选中「JSON 文件」,命名为
appsettings.Production.json - 写入你需要的生产环境配置内容,示例:
{ "ConnectionStrings": { "Identity": "Server=server1;Database=Identity;MultipleActiveResultSets=true; user id=uName; password=12345678", "Logistics": "Server=server1;Database=Logistics;MultipleActiveResultSets=true; user id=uName; password=12345678" } }
- 右键
appsettings.Production.json文件 → 选择「属性」,修改两个配置:- 生成操作:设置为「内容」
- 复制到输出目录:设置为「如果较新则复制」
后续发布时会直接使用你自定义的该文件,不会再自动生成覆盖。
方案2:关闭发布时自动更新配置的功能
如果不想新增配置文件,可直接关闭VS发布的自动替换逻辑:
- 打开你的发布配置界面,切换到「设置」选项卡
- 找到「数据库」分类,取消所有「使用此连接字符串(运行时使用)」的勾选
- 找到「Entity Framework Migrations」分类,取消所有勾选
- 保存发布配置后重新发布,就不会自动生成
appsettings.Production.json文件。
方案3:直接修改发布配置文件禁用自动替换
也可以直接编辑发布的pubxml配置文件彻底关闭配置替换逻辑:
- 找到项目下
Properties/PublishProfiles文件夹,打开你正在使用的.pubxml文件 - 在
PropertyGroup节点内添加以下两个配置:
<UpdateAppSettings>False</UpdateAppSettings> <UpdateConnectionStrings>False</UpdateConnectionStrings>
- 保存文件后重新发布即可。
内容的提问来源于stack exchange,提问作者BoxChop
相关产品推荐
相关产品推荐

