将TFS源代码控制下的项目迁移至新开发机器后绑定异常求助
解决TFS项目重新绑定后状态无效及冲突问题
我之前也碰到过一模一样的糟心事,给你几个更高效的解决方案,不用每次都硬着头皮处理一堆无意义的冲突:
方法一:手动修复绑定配置文件
TFS的绑定信息其实存在项目文件(.csproj/.vbproj)和解决方案文件(.sln)里,新机器上路径或服务器信息不匹配就会导致绑定状态无效。你可以这么操作:
- 先关掉Visual Studio,找到项目的
.csproj文件用记事本打开 - 查找包含
SccProjectName、SccLocalPath、SccAuxPath、SccProvider的行,确认这些值和新机器上的工作区路径、TFS服务器信息匹配,不对的话直接修改成正确内容 - 再打开
.sln文件,找到GlobalSection(TeamFoundationVersionControl)区块,检查里面的SccProjectUniqueName、SccProjectName等路径是否对应新机器的本地路径,修正错误项 - 保存文件后重启Visual Studio,绑定状态应该就能恢复正常,完全不用重新添加到源代码控制
方法二:用TFS命令行工具快速修复绑定
如果手动改文件嫌麻烦,试试用TFS自带的tf.exe命令行工具:
- 打开Visual Studio的开发者命令提示符(在开始菜单的Visual Studio文件夹里能找到)
- 导航到你的解决方案根目录:
cd C:\YourSolutionRootPath - 先解除现有绑定:
tf vc unbind . /recursive - 再重新绑定到正确的TFS服务器路径:
这里的tf vc bind $/YourTeamProject/YourSolutionPath . /recursive$/YourTeamProject/YourSolutionPath是服务器上的项目路径,.代表当前本地目录 - 执行完后打开Visual Studio,绑定状态就正常了,也不会触发大量冲突
方法三:清理工作区缓存后重建绑定
有时候本地TFS的工作区缓存会出问题,导致绑定识别错误:
- 关闭Visual Studio,打开命令提示符,执行命令清理旧工作区缓存:
tf workspace /delete /server:http://YourTFSServerAddress YourOldWorkspaceName - 重新打开Visual Studio,创建一个新的工作区,把项目映射到这个新工作区里,再打开项目时,绑定会自动关联到新工作区,状态自然就正常了
至于你之前的方法为什么会触发一堆冲突?因为重新添加项目到源代码控制时,TFS会把本地文件当成全新文件,和服务器版本对比后就会认为所有文件都有冲突。而上面的方法都是修复现有绑定关系,让TFS正确识别本地文件和服务器版本的对应关联,所以不会产生不必要的冲突。
内容的提问来源于stack exchange,提问作者Steve Murphy
相关产品推荐
相关产品推荐

