文件无法在工作区找到。

24

我正在使用Visual Studio 2010专业版与TFS作为源代码控制,一切都正常工作。但今天早上我打开我的解决方案时,它显示为离线状态。我尝试上线,但它显示:

"Workspace for this solution could not be found."

(我不记得确切的错误句子了)。

我关闭了我的解决方案。然后我进入了 待定更改窗口 -> 工作区组合框 -> 管理工作区。我编辑了我的工作区并将我的解决方案映射到已存在的文件夹中。

现在我能够在窗口中看到我的待定更改。我再次打开了我的解决方案,尝试检出一个文件,但是收到了错误:

"文件在工作区中未找到,或者你没有访问该文件的权限。"

除了获取最新版本或特定版本之外,还有什么指针可以提供吗?在管理工作区中,我的工作区是私有的。


嗯...也许你的电脑名称改变了或者类似的情况发生了?有可能是别人在晚上更改了你的网络或电脑设置吗?... - Ryan Riehle
1
最终,我选择了最新版本(获取特定版本)来解决这个问题。 - Sandy
刚刚解决了我的问题,谢谢 :D - Andy
6个回答

34

抱歉打扰各位。最终,我采用了最新版本来解决这个问题。


4
可以的 :) 不用担心 - 你并没有惹恼所有人 - Simon_Weaver
3
如果你在 VS2015 中遇到类似的问题,同样的解决方案也适用。 - Bruno Pessanha

17

TFS使用缓存。您的客户端计算机上可能有一个缓存,可能会混淆各种文件,因此请删除其中的文件。它的默认路径为C:\Users\<Username>\Local Settings\Application Data\Microsoft\Team Foundation\<Version Number>\Cache(这可能因您的操作系统而异,但在您的个人资料中)。

您可以尝试通过转到 文件 -> 源代码控制 -> 更改源代码控制... (如果此菜单项丢失,则可能需要重置菜单项)来重新建立解决方案/项目的绑定。如果源文件已经在工作区中,则可以单击结果对话框中的工具栏上的“绑定”图标将文件重新链接到源代码控制。但是,您可能仍需要执行get或重新打开VS以使其停止抱怨。

我知道您提到了想知道除了获取最新版本以外是否还能做些什么,但TFS 2010将工作区信息存储在服务器上,并需要连接以重新建立元数据。听起来您基本上重新创建了工作区的映射。在这样做时,服务器需要重新建立连接。我认为处理这种情况的唯一方法是在建立工作区后执行get。除非您使用“获取特定版本”对话框,否则不应该丢失任何内容,但是为了安全起见,我建议在工作区执行“获取最新版本”之前将文件复制到临时位置。执行完获取最新操作后,一切都应该正常。

显然,您可能还想检查工作区映射到的文件夹的权限(在稍微搜索一下后,我找不到确切的要求)。虽然您似乎已经知道这不太可能是问题,但如果您不确定,则当然可以将您保存文件的文件夹设置为递归地具有完全权限,以查看是否有所不同。

此外,请确保安装了Visual Studio 2010 SP1。

Visual Studio和TFS 2012通过所谓的本地工作区(Local Workspaces)改进了行为; 使用本地工作区,文件的元数据存储在文件系统中而不是服务器上。TFS 2012应很快上市。


5
你也可以直接输入以下内容到资源管理器:%LOCALAPPDATA%\Microsoft\Team Foundation\4.0\Cache(根据你的版本选择 4.0 或 3.0)。 - Simon_Weaver
1
C:\Users\your_user\AppData\Local\Microsoft\Team Foundation\3.0\Cache - Induster

1

对提示说“好”。当解决方案打开时(它不会引用文件),右键单击解决方案资源管理器中的解决方案,选择“重新加载项目”。


0

我在使用VS2015时遇到了类似的问题,后来发现我的电脑上安装了较旧版本的NuGet(VSIX (v3.3.0))。我从nuget网站下载了最新版本,问题得到了解决。


0

我遇到了这个错误,我检查了工作区目录的相关句柄(资源监视器中的CPU选项卡),发现devenv进程占用了其中一个目录。所以我重启了Visual Studio,然后就没有再出现这个错误了。


1
这个问题很久以前就被发布了......但我记得这对我没有起作用。然而,我们可能有不同的原因导致相同的错误。这是非常可能的。感谢分享你的答案。 - Sandy
@Sandy,是的,我尝试了你的答案,但对我没有用。我想如果我通过谷歌回到你的答案,也许有其他人遇到同样错误的原因。所以我把它放在这里,帮助像我一样的人。 - filhit

-1
只需将导致问题的文件从项目中排除,然后再重新包含即可。

这个问题最好作为评论而不是答案。尝试提供高质量的回答,避免被 StackOverflow 认为是低质量的回答。请参考:https://stackoverflow.com/help/how-to-answer - CoderUni

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