无法从TFS中删除工作区

10

我想将我的Visual Studio 2012项目添加到TFS服务器,但它显示该路径已经映射到工作区pc; administrator(这是一个本地工作区)。

我尝试了命令行工具tf,但它说没有工作区,因此我无法删除冲突的工作区。

我正在运行Windows 8和Visual Studio 2012。 TFS位于Windows Server 2012上。


你是否将本地工作区映射到不同的 TFS 服务器(或 TFS 预览版)?此外,这是一个团队项目还是本地项目?这个项目是否曾经与不同的 TFS 服务器相关联过? - Andrew Clear
1
我不知道在哪里按Ctrl+Q? - Poul K. Sørensen
当我尝试将项目添加到TFS时,它没有显示它所提到的工作区。 - Poul K. Sørensen
工作文件夹C:\ users \ poul \ documents \ vs2012 \ projects已被计算机s093294-laptop上的工作区s093294-laptop;管理员使用。 (我正在尝试添加的解决方案位于\ projects \ myproject \) - Poul K. Sørensen
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/16659/discussion-between-aclear16-and-s093294 - Andrew Clear
显示剩余4条评论
6个回答

12
问题在于当前项目位置,即您物理机器上的文件夹,被映射到了不同的TFS服务器。要将其添加到源代码控制中,您需要将其移动到与TFS服务器无关联的物理位置。 编辑 要删除问题工作区:
1)使用“团队”菜单连接到您不想映射到的TFS服务器
2)使用ctrl+q --> 工作区访问工作区菜单
3)删除工作区
4)再次使用“团队”菜单切换到您想要映射的TFS服务器
5)ctrl+q --> 工作区
6)添加新的工作区

是的,正如我们在聊天中讨论的那样,这个方案可行。提供一种取消映射本地路径以便再次使用的解决方案将非常有帮助。 - Poul K. Sørensen
感谢 @aclear16 的答案。我遇到了一个不同的错误信息,也通过这种方式解决了:该消息显示为“找到与工作区名称 'xxx' 和所有者名称 'abc' 匹配的多个标识。请指定以下工作区规格之一:”,然后列出一些工作区列表。 我连接到两个不同的 TFS 服务器,一个本地的和一个远程的。问题在于我在两个实例中都映射了相同的工作区 xxx。从其中一个 TFS 服务器删除工作区后,事情就按预期工作了。 - Sudhanshu Mishra

4

尝试以下任何步骤,其中一些步骤可能不适用于您。

清除“缓存工作区”并删除工作区映射。

  1. 在控制面板>用户>凭据管理器中,删除指向TFS的Windows帐户和通用帐户。
    在加载Visual Studio时如何更改连接到Visual Studio Online(TFSPreview)时使用的默认凭据?

  2. 在IE中,删除缓存的密码。
    http://www.jayway.com/2012/12/17/changing-tfs-credentials-in-visual-studio-2012/

  3. 删除存储的用户名/密码:
    http://blogs.msdn.com/b/visualstudioalm/archive/2012/08/29/clearing-the-credentials-for-connecting-to-a-team-foundation-server.aspx

    rundll32.exe keymgr.dll,KRShowKeyMgr

  4. 删除工作区。在VS2012命令行中,运行以下命令:

    tf.exe workspace /delete workspacename;owner /server:serveraddress
    http://mycomputeradventures.blogspot.com/2012/01/removing-tfs-workspaces-from-old-users.html

  5. 清除缓存的工作区映射。在VS2012命令行中,运行以下命令:

    tf.exe workspaces /remove:* (或/s:http//oldserver:8080)
    http://blogs.msdn.com/b/buckh/archive/2006/09/12/path-is-already-mapped-in-workspace.aspx


2

如果您使用的是Visual Studio 2012,请前往C:\Users{用户名}\AppData\Local\Microsoft\Team Foundation\4.0\Cache

如果您使用的是Visual Studio 2013,请前往

C:\Users{UserName}\AppData\Local\Microsoft\Team Foundation\5.0\Cache 

删除其下所有的元素。


当您启动Visual Studio 2010时,它会重新生成映射和工作区,导致无法正常工作。 - Owl

1
最简单的方法是进入你的AppData文件夹并删除TFS缓存(取决于版本是3.0还是4.0)
C:\Users{用户名}\AppData\Local\Microsoft\Team Foundation\3.0\Cache 或者 C:\Users{用户名}\AppData\Local\Microsoft\Team Foundation\4.0\Cache

谢谢...我尝试了从Visual Studio到TF.EXE的所有方法 - 但都没有成功。这个可以! - Kaj Bonfils

1
  1. 首先,我们将从VS 2015开发人员命令提示符中检查工作区列表,

    例如 - tf workspaces /owner:*

  2. 现在,我们将从VS 2017开发人员命令提示符中获取xml格式,其中将包含特定工作区的“所有者ID”,

    示例1 - tf.exe workspaces /owner:* /computer:ComputerName /collection:https://YOUR-TFS-URL.visualstudio.com /format:xml

  3. 现在,我们可以删除特定用户的工作区,

    示例1- Tf workspace /delete ComputerName;email@email.com /server:"https://URL.visualstudio.com"

    或者

    示例2 - Tf workspace /delete ComputerName;1e178c77-bb8b-6f05-bf99
    /server:https://URL.visualstudio.com

    (其中1e178c77-bb8b-6f05-bf99是从步骤2 XML格式中获取的工作区ID)

  4. 再次从VS 2015开发人员命令提示符中检查工作区列表,

    例如 - tf workspaces /owner:*


0

我找不到我的问题工作区,于是我将本地代码文件夹复制到另一个名称,并创建了一个新的工作区映射该文件夹。

接下来,我通过使用“添加源代码控制”在VS 2012中将新解决方案添加到TFS中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接