刚刚启动 Visual Studio 2012 并使用 Team Foundation Server 2012 Express 打开了我的源代码控制解决方案,遇到了这个问题,有什么想法吗?无法获取最新信息,无法签入,一切似乎都已签出:(基本上我的工作区现在无法使用。
TF400018: 本地工作区 MY-PC 的本地版本表;无法打开我的用户。工作区版本表包含未知的架构版本。
我在网上只能找到一篇帖子,答案很模糊。
刚刚启动 Visual Studio 2012 并使用 Team Foundation Server 2012 Express 打开了我的源代码控制解决方案,遇到了这个问题,有什么想法吗?无法获取最新信息,无法签入,一切似乎都已签出:(基本上我的工作区现在无法使用。
TF400018: 本地工作区 MY-PC 的本地版本表;无法打开我的用户。工作区版本表包含未知的架构版本。
我在网上只能找到一篇帖子,答案很模糊。
我有同样的问题,我只是把它修复在我的身上。
如果您不介意重新映射所有项目,可以尝试以下操作:
请注意,您可能会丢失所有 TFS 映射,您可能需要从 TFS 重新映射所有项目。备份尚未签入的更改。
cycle6 是正确的,但不清楚如果您执行一些额外的步骤,您是否会丢失待处理的签到列表。
您将留下您的解决方案和标记为已签出的所有待处理项目,并保留您的工作。
我做了以下步骤,它解决了这个问题:
$tfs
,然后Right click on the solution node > the Source Control > Get Specific version > latest version
如果您已经打开了多个 Visual Studio 实例。
全部关闭。[在某些情况下,您需要从 Windows 注销并重新登录或重新启动]
$tf
用任何其他名称重命名文件夹(例如。 $tft
)
启动 Visual Studio,查看您的问题是否已解决。:)
希望这可以帮助。
有时,当您的磁盘空间不足时会发生这种情况。尝试查看您是否有非常小的空间,例如。< 10 MB。
如果是这样,请尝试清理您的 Windows Temp 文件夹。看看能不能解决这个问题
有一个简单的解决方法。将本地映射删除到源文件夹所在的文件夹(高级 -> 删除映射,或者只是重命名或删除映射文件夹。之后,您将能够连接到 tfs。再次下载项目。
这在一定程度上是一种误导性信息。发生的事情是工作区的内部数据结构已损坏。最终作为代码(在tf
命令、Visual Studio 等中)加载那些无法从相关文件加载的数据结构,这成为有关架构版本问题的错误。
在我遇到的情况下,这是因为托管工作空间的机器在对各种工作空间进行操作(签出、签入、添加待处理的更改)时磁盘空间不足——实际上是一堆工作空间正在由 TFS 2017 构建代理和多个活动构建使用)。这损坏了隐藏子目录下文件中保存的数据部分$tf
(它始终是TFS 2017 构建代理上的本地工作区),因为源代码控制无法重写/扩展这些文件。
此处的其他答案讨论了部分保留一些文件,基于对未损坏的内容的更具体知识(例如,如果没有创建任何未决更改,则保留存储未决更改的内部文件),但基本思想是需要将所有东西重置为某种$tf
理智的状态。
就我而言,我有多种潜在原因的缺点,并且对哪些部分$tf
已损坏没有一致的了解,但相反我有一些优点:
s
(源)目录构建到它的a
(工件暂存)和b
(二进制)目录中,工作区中没有大量的非源控制对象和其他文件(这是s
目录),这将最终成为待处理的添加。tf vc scorch
、、tf vc undo
和tf vc get
检查正确的源版本。很简单,在 Developer PowerShell 中(Visual Studio 安装在构建机器上):
Remove-Item -Recurse -Force 'X:\Agents\07\_work\1138\s'
tf vc get 'X:\Agents\07\_work\1138\s'
(请注意,tf
在 TFS 构建机器上总是可以通过某种方式获取命令。每个构建代理tf.exe
在其 VSTS“OM”子目录中都有一个本地帮助程序副本及其辅助 DLL。)
我可能已经省略了这tf vc get
一步,但是过去在“获取源”方面遇到了麻烦,我不相信它能够稳健地应对任意手动外部更改,例如s
当构建未配置为彻底删除整个目录时没有目录目录本身(它可以是但不在这里)。出于同样的原因,微软自己的“代理维护”(另一种清理方式)非常狡猾,最终导致 TFS 服务器上的工作区泄漏(我向微软提出了一个错误)。
对于 eclipse 中的相同问题:找到文件夹 $tf 并将其删除。您将在工作区目录中找到 $tf 文件夹。如果没有,则搜索 $tf 文件夹。找到后,将其删除。
对我有用的是,删除本地文件夹,重新启动机器,然后再次映射项目。您刚刚将它们暂时保存在其他地方的任何未决更改。
或者,您可以将当前工作区备份到其他位置,重新创建工作区,然后将更改后的文件复制回。VS 应该检测到最新的文件并自动检出这些文件,从而允许您检入从备份中复制回来的较新版本。
在我的情况下,其他答案都没有帮助 - 问题发生在没有 Visual Studio 的机器上,无论我如何尝试摆脱它从未工作过的坏工作区数据。在使用 procmon 之后,我发现了另一个可能是此错误来源的关键文件夹:(C:\Users\All Users\Microsoft Team Foundation Local Workspaces\
它也可能位于C:\ProgramData
(在我的系统上,'All Users' 是该文件夹的符号链接,但不确定这是否是典型的.) 在这个文件夹中,有一些名为 guids 的子文件夹,其中包含一些其他文件夹,每个工作区都有一个。在我的情况下,这些文件夹中的一些数据是旧的,有些是损坏的。一旦我删除了坏的工作区文件夹,我所有的问题都消失了。您可能还想删除本文评论中标识的缓存文件夹,但这对我没有帮助(不过似乎也没有受伤。)