我们正在使用 Visual Studio 2008/TFS 2008。
我们有一个小型开发团队,出于某种原因,当我们中的任何人“获取最新信息”时,我们的某个路径会定期重新映射到它自己的不同路径。这会导致“获取最新”开始删除文件,因为路径已更改。每次重新映射到错误的路径时,它都是相同的路径。
- 工作空间定义存储在哪里?
- 是否有什么我们可能已经检查到 TFS 导致了这种情况?
我在打开解决方案时遇到了这种情况。如果解决方案包含指向不在其文件夹下的其他项目的相对路径,这些项目在您的工作区中以不同方式映射,则 GET 将告诉我它正在重新映射以解决此问题。问题是它做出的决定是完全错误的。
解决这个问题的唯一方法是确保所有开发人员都使用与 sourcec 控制相同的结构,并且拥有在每个工作区中表示的结构。
到达那里虽然很痛苦。基本上每个人都必须删除所有文件的所有本地副本,重做工作区,在工作区更改时选择“否”以“获取”,关闭 VS,打开,获取最新信息。
原因是如果项目副本存在本地,即使这些项目没有打开,GET 仍然是错误的。这令人沮丧,因为在检查这些项目的最新差异时没有任何变化,但是当打开包含该项目的解决方案时,该项目中的 dll 引用会自动更改。在那一刻,任何文件都没有待处理的更改。但是在构建之后,这些变化会持续存在并导致下一个 get 再次关闭......
我敢肯定这都是错的,但这就是本周发生在我们身上的事情。
您还可以尝试清除工作区缓存并重新映射它:
SET AppDataTF=%USERPROFILE%\Local Settings\Application Data\Microsoft\Team Foundation SET AppDataVS=%APPDATA%\Microsoft\VisualStudio 如果存在 "%AppDataTF%\1.0\Cache" rd /s /q "%AppDataTF%\1.0\Cache" > NUL 如果存在 "%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
好,我知道了。这是解决方案。
首先安装 Visual Studio 2008 SP1。(我想你已经安装了 VS 2008 和 Team Explorer)。
现在启动 Visual Studio 2008,转到源代码管理并删除工作区。创建一个新的工作区并将源代码管理文件夹映射到本地文件夹。单击确定。当它询问“工作空间已被修改,您想要获取最新的”时,选择否。
现在关闭 Visual Studio 2008。
重新打开 Visual Studio 2008 并转到源代码管理和获取特定(选中两个复选框以覆盖文件)。
如果你有一个基于 asp.net 的 web 解决方案,现在是时候创建应用程序池、在 IIS 中配置网站、设置适当的身份验证和授权了。否则它是可选的!
现在转到源代码管理中的相应文件夹并双击解决方案文件。您也可以通过双击本地文件夹中的解决方案文件来打开解决方案,但我发现从源代码管理中打开解决方案更容易。
执行上述步骤,如果您的网站已配置,Visual Studio 2008 将自动检测您已设置的网站并提示您确认。单击确定。
它将联系源代码控制服务器以查看是否需要同步。如果您的解决方案中有多个项目,您会观察到文件获取进度条在屏幕上快速闪烁,您的解决方案将在几分钟内设置完毕。
真正的问题是Visual Studio 2008 Service Pack 1。没有它,TFS 映射就会损坏。如果安装了 SP1 并遵循上述指南,则不会有任何问题。
这不是正常行为 - 听起来有些事情很有趣。只是想检查一下-您所做的只是从源代码管理资源管理器中简单获取正确吗?另外-你们所有人都在不同的机器上?(即您不共享虚拟 PC 映像或多台机器具有相同名称的任何内容)
我想我会检查的是转到文件、源代码管理、管理工作区并在获取之前和之后查看您的工作文件夹映射,看看是否有任何变化。它不应该 - 如果它这样做,这可能会给我们一个关于正在发生的事情的线索。
工作区定义存储在服务器上。
如果您转到命令行并键入“tf workspace”,您将看到您的工作区的定义。