工作空间版本表包含未知的架构版本

时间:2013-02-07 11:14:10

标签: tfs visual-studio-2012 tfs2012

刚刚启动Visual Studio 2012并使用Team Foundation Server 2012 Express打开了我的源代码控制解决方案并遇到过这个,有什么想法吗?无法获取最新信息,无法办理登机手续,一切都显示已检出:(基本上我的工作空间现在无法使用。

  

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

我只能在网上找到one post,答案非常模糊。

11 个答案:

答案 0 :(得分:17)

我遇到了同样的问题,我只是把它修好了。
如果您不介意重新映射所有项目,可以尝试按照:

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



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

答案 1 :(得分:14)

cycle6是正确的,但是如果您执行其他一些步骤,则不会丢失您的待处理登记列表。

  1. 点击标有"工作区"。
  2. 的复选框
  3. 点击"工作区"。
  4. 删除损坏的工作区配置文件,接受警告。
  5. 重新连接到TFS并打开" Source Control Explorer"
  6. 创建新工作区
  7. 逐个将项目映射到与之前相同的文件夹
  8. 您将看到一个冲突列表,您已在该文件夹中找到匹配的可写文件。
  9. 选择"保留本地副本"对于之前签出的每个文件,以及" Take Server Version"对于您没有最新版本的团队其他成员更改的任何文件。这可能需要一段时间,具体取决于列表的长度,但是值得比较您不确定的任何文件的版本。
  10. 您将留下您的解决方案以及所有标记为已签出的待处理项目,并保留您的工作。

答案 2 :(得分:7)

我做了以下步骤并解决了问题:

  1. 删除了名为$tfs的隐藏文件夹,然后删除了
  2. Visual Studio中的
  3. ,解决方案资源管理器:Right click on the solution node > the Source Control > Get Specific version > latest version

答案 3 :(得分:4)

有时,当磁盘空间不足时会发生这种情况。 试着看看你的空间是否很小,例如。 < 10 MB

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

答案 4 :(得分:3)

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

  1. 关闭所有这些内容。 [在某些情况下,您需要从Windows&重新登录或重启]

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

  3. 启动Visual Studio,查看问题是否已修复。 :)

  4. 希望这会有所帮助。

答案 5 :(得分:1)

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

答案 6 :(得分:1)

enter image description here如果您已经打开了多个Visual Studio的tfs实例。

1。)打开文件 - >源控制 - >管理工作区 2.)删除所有tfs地图 3.)然后选择文件夹地图

答案 7 :(得分:0)

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

答案 8 :(得分:0)

针对日食中的同一问题:找到$ tf文件夹并将其删除。 您将在工作区目录中找到$ tf文件夹。如果没有,请搜索$ tf文件夹。 找到它后,将其删除。

答案 9 :(得分:0)

对我有用的是删除本地文件夹,重新启动计算机,然后再次映射项目。您所有待处理的更改都只是将它们临时保存在其他位置。

答案 10 :(得分:0)

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

在我遇到的情况下,这是因为托管工作区的机器在对各种类型的工作区(签出、签入、添加待处理变化——它实际上是由 TFS 2017 构建代理和多个活动构建使用的一堆工作区)。 这损坏了保存在隐藏 $tf 子目录下的文件中的数据部分(在 TFS 2017 构建代理上始终为 a local workspace),因为源代码管理无法重写/扩展这些文件。

这里的其他答案讨论了部分保留一些文件,基于对损坏的更具体的了解(例如,如果没有创建任何挂起的更改,则保留存储挂起的更改的内部文件更改),但基本思想是需要将 $tf 中的所有内容重置为 某种 类型的正常状态。

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

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

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

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

(请注意,在 TFS 构建机器上总是可以通过某种方式获得 tf vc get 'X:\Agents\07\_work\1138\s' 命令。每个构建代理都有一个 tf 的本地辅助副本及其 VSTS“OM”中的辅助 DLL " 子目录。)

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