刚刚启动Visual Studio 2012并使用Team Foundation Server 2012 Express打开了我的源代码控制解决方案并遇到过这个,有什么想法吗?无法获取最新信息,无法办理登机手续,一切都显示已检出:(基本上我的工作空间现在无法使用。
TF400018:本地工作区MY-PC的本地版本表;我的 用户无法打开。工作区版本表包含 未知的架构版本。
我只能在网上找到one post,答案非常模糊。
答案 0 :(得分:17)
我遇到了同样的问题,我只是把它修好了。
如果您不介意重新映射所有项目,可以尝试按照:
请注意,您可能会丢失所有TFS映射,您可能需要从TFS重新映射所有项目。备份尚未签入的更改。
答案 1 :(得分:14)
cycle6是正确的,但是如果您执行其他一些步骤,则不会丢失您的待处理登记列表。
您将留下您的解决方案以及所有标记为已签出的待处理项目,并保留您的工作。
答案 2 :(得分:7)
我做了以下步骤并解决了问题:
$tfs
的隐藏文件夹,然后删除了Right click on the solution node > the Source Control > Get Specific version > latest version
答案 3 :(得分:4)
有时,当磁盘空间不足时会发生这种情况。 试着看看你的空间是否很小,例如。 < 10 MB
如果是这样,请尝试清理Windows Temp文件夹。看看是否能解决这个问题
答案 4 :(得分:3)
如果您已经打开了多个Visual Studio实例。
关闭所有这些内容。 [在某些情况下,您需要从Windows&重新登录或重启]
使用任何其他名称重命名$tf
文件夹(例如$tft
)
启动Visual Studio,查看问题是否已修复。 :)
希望这会有所帮助。
答案 5 :(得分:1)
有简单的解决方法。删除本地映射到文件夹的位置(高级 - >删除映射,或者只是重命名或删除映射文件夹。之后,您将能够连接到tfs。再次下载项目。
答案 6 :(得分:1)
答案 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
的哪些部分已损坏,但相反,我有一些优点:
s
(源)目录构建到其 a
(工件暂存)和 b
(二进制)目录中,没有工作区(即 s
目录)中的大量非源代码控制的对象和其他文件,这些文件最终会成为待添加的内容。tf vc scorch
、{{1 }} 和 tf vc undo
以查看正确的源版本。很简单,在 Developer PowerShell 中(安装在构建机器上的 Visual Studio):
tf vc get
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 服务器上的工作区泄漏(我向微软提出了一个错误)。