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

手动解决csproj文件合并冲突后修改消失问题求助

问题原因与解决方案

可能的原因

  1. GUI合并工具状态同步问题:你用的Git图形客户端(比如VS内置工具)可能在标记冲突解决后,没把修改实际写入磁盘,只是在内存层面标记冲突已处理,导致文件没有真实变更。
  2. 合并分支选择错误:正确操作应该是合并已包含BranchB变更的dev分支到BranchA,而非直接合并BranchB到BranchA——毕竟BranchB已经合并进dev了,直接合并两个平行分支可能触发Git特殊合并逻辑,导致修改被忽略。
  3. 自动工具干扰:如果项目里有自动管理版本号的脚本、NuGet插件或残留的CI进程,可能在你修改后自动重置了csproj的版本号。

解决步骤

方法1:命令行手动处理(最可靠)

放弃GUI工具,用命令行完成合并:

  1. 拉取最新dev分支:
    git checkout dev
    git pull origin dev
    
  2. 切回BranchA:
    git checkout BranchA
    
  3. 合并dev到BranchA:
    git merge dev
    
  4. 出现冲突后,用编辑器打开csproj文件,手动将版本号改为<Version>1.0.13</Version>。
  5. 标记冲突解决并提交:
    git add YourProject.csproj
    git commit -m "合并dev分支,修复版本号冲突"
    
  6. 推送到远程BranchA:
    git push origin BranchA
    

方法2:修复GUI工具状态

如果坚持用GUI工具:

  1. 关闭冲突解决窗口,直接在文件管理器中打开csproj,手动修改版本号为1.0.13。
  2. 在Git客户端中刷新文件状态,确认csproj显示为已修改。
  3. 手动添加该文件到暂存区,提交并推送。

方法3:排除自动工具干扰

检查项目根目录的Directory.Build.props、版本管理脚本或NuGet相关配置文件,暂时注释掉自动修改版本号的逻辑,完成合并后再恢复。

后续避免方案

  • 合并前务必拉取主干分支(dev)的最新代码,再合并到开发分支,不要直接合并两个平行开发分支。
  • 手动管理版本号时,在PR描述中明确标注版本变更,避免多人同时修改同一字段。
  • 尽快启用PR冲突解决扩展,减少手动合并的出错概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:18:32