27

刚刚启动 Visual Studio 2012 并使用 Team Foundation Server 2012 Express 打开了我的源代码控制解决方案,遇到了这个问题,有什么想法吗?无法获取最新信息,无法签入,一切似乎都已签出:(基本上我的工作区现在无法使用。

TF400018: 本地工作区 MY-PC 的本地版本表;无法打开我的用户。工作区版本表包含未知的架构版本。

我在网上只能找到一篇帖子,答案很模糊。

4

12 回答 12

20

我有同样的问题,我只是把它修复在我的身上。
如果您不介意重新映射所有项目,可以尝试以下操作:

  • 单击“工作区”中的框。
  • 单击“工作区”。
  • 删除您当前使用的工作区配置文件
  • 重新连接到 TFS 打开“源代码管理”



请注意,您可能会丢失所有 TFS 映射,您可能需要从 TFS 重新映射所有项目。备份尚未签入的更改。

于 2013-02-26T19:00:39.700 回答
17

cycle6 是正确的,但不清楚如果您执行一些额外的步骤,您是否会丢失待处理的签到列表。

  1. 单击标有“工作区”的框。
  2. 单击“工作区”。
  3. 删除损坏的工作区配置文件,接受警告。
  4. 重新连接到 TFS 并打开“Source Control Explorer”
  5. 创建新工作区
  6. 一个一个地把你的项目映射到和以前一样的文件夹
  7. 您将看到一个冲突列表,其中您已经在文件夹中有匹配的可写文件。
  8. 为您之前签出的每个文件选择“保留本地副本”,并为您没有最新版本的团队其他成员更改的任何文件选择“获取服务器版本”。这可能需要一段时间,具体取决于列表的长度,但值得比较您不确定的任何文件的版本。

您将留下您的解决方案和标记为已签出的所有待处理项目,并保留您的工作。

于 2015-04-16T11:41:29.330 回答
11

我做了以下步骤,它解决了这个问题:

  1. 删除了名为的隐藏文件夹$tfs,然后
  2. 在 Visual Studio 中,解决方案资源管理器: Right click on the solution node > the Source Control > Get Specific version > latest version
于 2016-10-19T18:03:23.427 回答
9

如果您已经打开了多个 Visual Studio 实例。

  1. 全部关闭。[在某些情况下,您需要从 Windows 注销并重新登录或重新启动]

  2. $tf用任何其他名称重命名文件夹(例如。 $tft

  3. 启动 Visual Studio,查看您的问题是否已解决。:)

希望这可以帮助。

于 2016-10-04T11:07:49.537 回答
5

有时,当您的磁盘空间不足时会发生这种情况。尝试查看您是否有非常小的空间,例如。< 10 MB。

如果是这样,请尝试清理您的 Windows Temp 文件夹。看看能不能解决这个问题

于 2017-05-24T08:57:56.650 回答
1

有一个简单的解决方法。将本地映射删除到源文件夹所在的文件夹(高级 -> 删除映射,或者只是重命名或删除映射文件夹。之后,您将能够连接到 tfs。再次下载项目。

于 2014-08-14T06:34:11.470 回答
1

这在一定程度上是一种误导性信息。发生的事情是工作区的内部数据结构已损坏。最终作为代码(在tf命令、Visual Studio 等中)加载那些无法从相关文件加载的数据结构,这成为有关架构版本问题的错误。

在我遇到的情况下,这是因为托管工作空间的机器在对各种工作空间进行操作(签出、签入、添加待处理的更改)时磁盘空间不足——实际上是一堆工作空间正在由 TFS 2017 构建代理和多个活动构建使用)。这损坏了隐藏子目录下文件中保存的数据部分$tf(它始终是TFS 2017 构建代理上的本地工作区),因为源代码控制无法重写/扩展这些文件。

此处的其他答案讨论了部分保留一些文件,基于对损坏的内容的更具体知识(例如,如果没有创建任何未决更改,则保留存储未决更改的内部文件),但基本思想是需要将所有东西重置为某种$tf理智的状态。

就我而言,我有多种潜在原因的缺点,并且对哪些部分$tf已损坏没有一致的了解,但相反我有一些优点:

  • 它是一个 TFS 构建,被安排从构建代理的s(源)目录构建到它的a(工件暂存)和b(二进制)目录中,工作区中没有大量的非源控制对象和其他文件(这是s目录),这将最终成为待处理的添加。
  • 没有任何值得保留的未决更改(对实际源文件)。我可以承受丢失有关源文件的所有信息,以及实际上所有当前本地存储的有关工作空间的信息,并且只需使用一个全新且大部分未填充的工作空间再次运行构建。我什至不需要恢复整个工作区的源文件和目录,因为任何 TFS(“vNext”)构建中的第一个任务是“获取源”任务,它使用(各种)tf vc scorch、、tf vc undotf vc get检查正确的源版本。

很简单,在 Developer PowerShell 中(Visual Studio 安装在构建机器上):

  1. Remove-Item -Recurse -Force 'X:\Agents\07\_work\1138\s'
  2. tf vc get 'X:\Agents\07\_work\1138\s'

(请注意,tf在 TFS 构建机器上总是可以通过某种方式获取命令。每个构建代理tf.exe在其 VSTS“OM”子目录中都有一个本地帮助程序副本及其辅助 DLL。)

我可能已经省略了这tf vc get一步,但是过去在“获取源”方面遇到了麻烦,我不相信它能够稳健地应对任意手动外部更改,例如s当构建未配置为彻底删除整个目录时没有目录目录本身(它可以是但不在这里)。出于同样的原因,微软自己的“代理维护”(另一种清理方式)非常狡猾,最终导致 TFS 服务器上的工作区泄漏(我向微软提出了一个错误)。

于 2021-02-23T10:09:36.303 回答
1

对于 eclipse 中的相同问题:找到文件夹 $tf 并将其删除。您将在工作区目录中找到 $tf 文件夹。如果没有,则搜索 $tf 文件夹。找到后,将其删除。

于 2019-05-21T09:51:04.987 回答
1

在此处输入图像描述如果您已经打开了多个 Visual Studio 的 tfs 实例。

1.) 打开文件 -> 源代码管理 -> 管理工作区 2.) 删除所有 tf​​s 映射 3.) 然后选择文件夹映射

于 2017-10-10T06:17:50.287 回答
0

对我有用的是,删除本地文件夹,重新启动机器,然后再次映射项目。您刚刚将它们暂时保存在其他地方的任何未决更改。

于 2019-07-24T15:08:50.027 回答
0

或者,您可以将当前工作区备份到其他位置,重新创建工作区,然后将更改后的文件复制回。VS 应该检测到最新的文件并自动检出这些文件,从而允许您检入从备份中复制回来的较新版本。

于 2017-02-20T00:28:37.987 回答
0

在我的情况下,其他答案都没有帮助 - 问题发生在没有 Visual Studio 的机器上,无论我如何尝试摆脱它从未工作过的坏工作区数据。在使用 procmon 之后,我发现了另一个可能是此错误来源的关键文件夹:(C:\Users\All Users\Microsoft Team Foundation Local Workspaces\它也可能位于C:\ProgramData(在我的系统上,'All Users' 是该文件夹的符号链接,但不确定这是否是典型的.) 在这个文件夹中,有一些名为 guids 的子文件夹,其中包含一些其他文件夹,每个工作区都有一个。在我的情况下,这些文件夹中的一些数据是旧的,有些是损坏的。一旦我删除了坏的工作区文件夹,我所有的问题都消失了。您可能还想删除本文评论中标识的缓存文件,但这对我没有帮助(不过似乎也没有受伤。)

于 2021-11-02T04:29:34.130 回答