如何阻止Visual Studio发布API时篡改连接字符串?
解决Visual Studio发布时篡改连接字符串的问题
检查发布配置的连接字符串设置
- 右键项目 → 选择「发布」,打开发布配置界面
- 在发布设置的「连接字符串」板块,确认是否存在自动填充或替换的配置:
- 若有针对
MyDB的替换项,直接删除该条目,或选择「不替换」选项 - 确保「使用此连接字符串(可能会覆盖web.config或appsettings.json)」的选项未被勾选
- 若有针对
修改发布配置文件(.pubxml)
如果上述界面未找到问题,直接编辑项目的发布配置文件:
- 在项目的
Properties/PublishProfiles目录下找到对应的.pubxml文件(比如FolderProfile.pubxml) - 打开文件,检查是否存在类似以下的节点,若有则直接删除:
<ItemGroup> <MsDeployParameterValue Include="$(DeployParameterPrefix)ConnectionStrings:MyDB" /> </ItemGroup> - 保存文件后重新发布
禁用用户机密的自动替换
如果项目启用了用户机密,可能会在发布时被自动注入:
- 右键项目 → 选择「管理用户机密」
- 检查机密文件中是否存在
ConnectionStrings:MyDB条目,若值为1dc67b3c则删除该条目 - 关闭用户机密窗口后重新发布
检查项目的构建事件
- 右键项目 → 选择「属性」→ 切换到「生成事件」标签
- 检查「后期生成事件命令行」中是否有脚本自动生成或修改
appsettings.production.json,若有则删除对应脚本内容
手动添加appsettings.production.json到项目
若不想让VS自动生成该文件,可手动创建:
- 在项目根目录新建
appsettings.production.json,内容保留正确的连接字符串(与主配置文件一致) - 右键该文件 → 选择「属性」,设置「复制到输出目录」为「如果较新则复制」或「始终复制」
- 发布时VS会使用你手动创建的文件,而非自动生成替换后的版本
内容的提问来源于stack exchange,提问作者SiBrit
相关产品推荐
相关产品推荐

