为什么我的TFS工作区路径会自动重新映射?

时间:2009-03-06 13:44:54

标签: tfs tfs2008 workspace

我们正在使用Visual Studio 2008 / TFS 2008。

我们有一个小团队的开发人员,出于某种原因,定期,当我们任何人“获得最新”时,我们的一条路径会重新映射到它自己的不同路径。这会导致“获取最新”开始删除文件,因为路径已更改。每次重新映射到错误的路径时,它都是相同的路径。

  1. 工作区定义存储在哪里?
  2. 我们可能已经检查过TFS导致这种情况吗?

5 个答案:

答案 0 :(得分:6)

我在打开解决方案时遇到这种情况。如果解决方案包含不在其文件夹下的其他项目的相对路径,在工作区中以不同方式映射,GET将告诉我它正在重新映射以解释它。问题是它做出的决定是完全错误的。

唯一的方法是确保所有开发人员使用sourcec控件使用的相同结构,并在每个工作区中使用hasv。

然而,到那里却很痛苦。基本上每个人都必须删除所有文件的所有本地副本,重做工作区,选择在工作空间更改时“获取”,关闭VS,打开,获取最新文件。

原因是如果项目的副本在本地存在,即使这些项目没有开放,GET仍然是错误的。这很令人沮丧,因为在检查那些项目与最新项目的差异时没有变化,但是当打开包含该项目的解决方案时,该项目中的dll引用将自动更改。此时,任何文件都没有待处理的更改。但是在建立之后,这些变化将会持续存在并导致下一次变更...... ...

我确信这一切都是错的,但这就是我们本周发生的事情。

答案 1 :(得分:1)

这不是正常行为 - 听起来像是有趣的事情。只是想检查一下 - 你所做的一切都是简单的从源代码管理资源管理器得到的正确吗?还 - 你们所有人都在不同的机器上? (即,您没有共享虚拟PC映像或多台机器具有相同名称的任何内容)

有人认为我要检查的是转到文件,源代码控制,管理工作区并查看get之前和之后的工作文件夹映射,看看是否有任何变化。它不应该 - 如果它这样做可能会给我们一个关于发生了什么的线索。

答案 2 :(得分:1)

您还可以尝试清除工作区缓存并重新映射:

SET AppDataTF=%USERPROFILE%\Local Settings\Application Data\Microsoft\Team Foundation
SET AppDataVS=%APPDATA%\Microsoft\VisualStudio
IF EXIST "%AppDataTF%\1.0\Cache" rd /s /q "%AppDataTF%\1.0\Cache" > NUL
IF EXIST "%AppDataTF%\2.0\Cache" rd /s /q "%AppDataTF%\2.0\Cache" > NUL
IF EXIST "%AppDataVS%\8.0\Team Explorer" rd /s /q "%AppDataVS%\8.0\Team Explorer" > NUL
IF EXIST "%AppDataVS%\9.0\Team Explorer" rd /s /q "%AppDataVS%\9.0\Team Explorer" > NUL

答案 3 :(得分:1)

好的,我明白了。这是解决方案。

首先安装Visual Studio 2008 SP1。(我想你已经安装了VS 2008和Team Explorer)。

现在启动Visual Studio 2008,转到源代码控制并删除工作区。 创建一个新工作区并将源控件文件夹设置为本地文件夹映射。 单击确定。 当它询问“工作区已被修改时,您想获得最新信息”,选择否。

现在关闭Visual Studio 2008

重新打开Visual Studio 2008并转到源代码管理并获取特定内容(选中这两个复选框以覆盖文件)。

如果您有基于asp.net网络的解决方案,现在是时候创建应用程序池,在IIS中配置网站,请设置正确的身份验证和授权。否则是可选的!

现在转到源代码管理中的相应文件夹,然后双击解决方案文件。您也可以通过双击本地文件夹中的解决方案文件来打开解决方案,但我发现从源代码管理中打开解决方案更容易。

执行上述步骤,如果您的网站已配置,Visual Studio 2008将自动检测您的网站您已设置并提示您确认。点击确定。

它将联系源控制服务器以查看是否需要同步。如果您的解决方案中有许多项目,您将看到文件获取进度条在屏幕上快速闪烁,您的解决方案将在几分钟内完成。

真正的问题是 Visual Studio 2008 Service Pack 1 。没有它,TFS映射就会被破坏。如果安装了IF SP1并遵循了上述指南,则没有问题。

答案 4 :(得分:0)

工作区定义存储在服务器上。

如果您转到命令行并输入“tf workspace”,您将看到工作区的定义。