Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 从2010年升级后,TFS 2012 update 4的“TF14045:标识不是可识别的标识”_Visual Studio 2012_Version Control_Tfs - Fatal编程技术网

Visual studio 2012 从2010年升级后,TFS 2012 update 4的“TF14045:标识不是可识别的标识”

Visual studio 2012 从2010年升级后,TFS 2012 update 4的“TF14045:标识不是可识别的标识”,visual-studio-2012,version-control,tfs,Visual Studio 2012,Version Control,Tfs,我们最近从TFS 2005迁移到TFS 2010,再迁移到TFS 2012更新4 TFS 2005到TFS 2010是通过升级过程完成的。TFS 2010至TFS 2012是通过从TFS2010框中分离并在TFS 2012框上重新连接的方法完成的 我们的一个用户出现以下错误 “TF14045:该标识不是可识别的标识” 问题似乎与他的机器名和工作区有关 当我尝试使用Team Foundation SIDKEKES 2012通过计算机名称搜索TFS工作区时,我得到相同的错误。 如果这个人在不同的电脑

我们最近从TFS 2005迁移到TFS 2010,再迁移到TFS 2012更新4

TFS 2005到TFS 2010是通过升级过程完成的。TFS 2010至TFS 2012是通过从TFS2010框中分离并在TFS 2012框上重新连接的方法完成的

我们的一个用户出现以下错误

“TF14045:该标识不是可识别的标识”

问题似乎与他的机器名和工作区有关

当我尝试使用Team Foundation SIDKEKES 2012通过计算机名称搜索TFS工作区时,我得到相同的错误。

如果这个人在不同的电脑上工作,他没有任何问题

这是我试过的一些东西

我试着删除他的个人资料,但没有成功。 尝试安装vs2013以查看它是否是Visual studio 2010问题,但没有成功 重新安装了电脑,但名称相同,我仍然收到错误。 尝试更改电脑名,将其移出域,重新连接到域,但未成功
我没有尝试再次重建机器,但使用不同的名称来查看会发生什么。在我重做那项漫长的任务之前,我只想看看有没有人有什么建议。

最后,我用一个全新的名字重新组装了这台电脑。在此之后,用户登录时不再出现问题

当我在Team Foundation SIDKEKS中用机器名搜索TFS时,仍然会出错,但我认为这是一个失败的原因。

**

更新-两年后,我决定去清理TFS中的旧工作区。 我注意到,在尝试查看特定集合上的所有工作区时,仍然存在报告的问题

tf工作区/所有者:*/计算机:*/集合:

我打开了微软的事故记录单

经过一点故障排除后,答案是从收集表中清除坏的-tbl_vIdentityMap

清除第一个条目后,我将重试tf workspace命令,并弹出一个新的guid错误

我最终从该表中清除了25个条目,然后tf工作区的问题就消失了


在错误消息中弹出的guid等于许多集合表中的TeamFoundationServerId。

我已经完成了OK:我重命名/删除了连接TFS_Database.dbo.tbl_Workspace中的错误的工作区。

我使用了一个PowerShell包装器来删除给定用户的所有工作区:

Set-Alias -Name 'tf' -Value 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe' # amend path so it points to your tf.exe file

# fetch a list of all workspaces and store them in an xml variable
$x = [xml](tf workspaces /computer:* /owner:* /format:xml)

# determine who we want to delete (this is used in our filter later; to delete all, just skip the filter
$userToDelete = 'Someone@example.com'

# for each workspace 
# take those where the owner's display name matches our target user
# then delete that workspace (I've left prompts enabled, so you can manually validate things; add /noprompt to avoid that
$x.Workspaces.Workspace | ?{$_.ownerdisp -eq $userToDelete} | %{tf vc workspace /delete "$($_.name);$($_.owner)"}
有关中可用选项的更多信息;因此,您可以根据自己的具体要求调整上述内容


谢谢你给我展示了XML输出技巧。

在我们的场景中,我们处于一个TFS到Azure DeVoP服务器迁移的中间。 在连接到新的Azure DevOps实例后,将Visual Studio 2019连接回TFS repos时收到相同的错误

通过源代码管理资源管理器手动删除工作区成功了