如何在TFS中重新绑定我的项目?

时间:2013-07-03 22:17:25

标签: tfs

尝试将新计算机重新连接到我的项目所具有的所有依赖项,我目前的障碍是TFS绑定。我明白这一点:

enter image description here

...当我选择File |时源控制|更改源控制...,但单元格中的值是只读的。当我捣碎" Bind"按钮,我被责骂,"无法找到解决方案的映射"。是的,我知道,这就是我想重新绑定他们的原因。怎么样?

更新

选择文件|源控制|工作区,我得到一个工作区列表(但只有在我选择"显示远程工作区"复选框后),而我当前感兴趣的那个看起来很好:

enter image description here

......那么这有什么不对?我假设" $ \ tlog"连接到远程源;我的本地机器上的源是,其中" local"细胞表示,所以...问题是什么?为什么不让它让我重新介绍这对?

更新2

重新启动时,我收到了,#34;相关的源代码管理插件未安装或无法初始化。此错误的常见原因包括服务器不可用和/或不正确的工作区映射。"并根据这里的答案:How do I get Visual Studio Team Foundation Server to see I moved code to a different folder?,我允许它永久解开。"但是当我查看工作区时,设置与以前完全相同:连接与以前完全相同(它是真的,它们不起作用,但我认为永久解除绑定会删除他们来自Workspaces。)

更新3

Visual Studio的另一次重启,并且绑定确实被切断了 - 不再是错误的消息。但是,它们仍显示为在Workspaces中连接!?!

更新4

我现在可以编辑"更改"对话框,但即使连接似乎准确,它告诉我状态无效:

enter image description here

我知道本地路径是正确的,我无法对服务器路径做任何事情(AFAIK)(我确定没有改变),为什么它无效?一定要喜欢这个"生产力"软件

更新5

我试过了。我删除了" GlobalSection(TeamFoundationVersionControl)"部分,选择文件|源控制|更改源代码管理...,然后突出显示解决方案中的第一个项目,选择" Bind"按钮。它就是这样的:

enter image description here

...捣碎" Bind"按钮:

enter image description here

IOW,在Mudville仍然没有快乐(Casey已经退出)。它说它已连接,但它无效。如果它可以解释为什么会有什么不妥之处呢?给我一个线索,TFS!

更新6

好吧,我确实进一步了解了一些要绑定的项目:

enter image description here

然而,仍有九人顽固不化。我试图通过改变.sln文件来修复这些绑定。如上所述,解决方案中的九个项目的状态为“无效”和“#34;其余的(数量超过两倍)是"有效"

所以我将有效性与in-进行了比较,并且我看到所有"无效" s都有额外的路径"描述"例如" ../../"和" .. \"等等,我剥掉了所有这些,用那个替换了.sln,然后......没有。残疾人无效。

然后我采用了#34;核选项" DaveShaw在这里建议:TFS Issue: No source control options (get latest, check-out, check-in) for Solution

......但仍然没有 - 没有变化;有效期仍然有效,无效仍无效。

我可以在TFS无意义的时候重写所有代码!

不是真的,但它仍然令人沮丧。

更新7

有关我尝试过的内容以及正在发生的事情的详细信息,请参阅http://social.msdn.microsoft.com/Forums/vstudio/en-US/08d3e956-62a8-4874-8468-f178d12ac67c/why-is-the-requested-url-and-physical-path-the-browser-is-trying-to-use-different-from-the-actual?prof=required

更新8

在我看来,TFS应该做的是允许你为它提供一个本地文件夹结构,或者更好的是没有子文件夹,只有"起点"然后TFS应该根据存储库的结构填写文件夹结构,并用最新的代码填充它。

如果 它是如何工作的,或者可以工作...... gr8!但我还没有找到如何做到这一点......

更新9

以下是我认为应该有效的方式:

1)在Windows资源管理器中,您可以创建一个本地文件夹,为您的解决方案正确命名

2)打开Visual Studio,然后选择"连接到TFS"在Visual Studio起始页上

3)选择File |源控制|工作区...... |编辑...

4)在"编辑工作区"的工作文件夹部分的记录/行中对话框,你点击进入"本地文件夹"输入以便能够编辑它

5)您将省略号按钮混合以显示“文件夹”对话框。

6)然后,您选择在步骤1中创建的文件夹并将" Ok"按钮。

您现在在"工作文件夹中有一条记录:"看起来像这样的部分

Status  Source Control Folder   Local Folder
=====   ==================  ==========
Active  $/Whatever      C:\Whatever

7)你现在混合了这个"好的"按钮

注意:当我这样做时,会出现一个对话框:

"工作区已修改 版本控制中的一个或多个工作文件夹已更改。你呢 想从版本控制中获取最新文件以更新本地文件 工作区"

我捣碎"是"并看到了:

"获得进步 C:\无论\\\ ..."

...进度条不断更新的文本似乎表明它正在按照我的预期进行操作(将存储库文件复制到本地文件夹,根据需要创建子文件夹)。

8)你捣乱"关闭" "编辑工作区"上的按钮对话框

9)然后选择"打开项目......"在Visual Studio起始页上,导航到C:\ Whatever

10)太阳出来了,蓝鸟开始唱歌,海豚开始在中间距离跳出水面,精心设计的喜悦。

然而,在我的情况下,发生的事情是Windows资源管理器说我的愿望(Whatever.sln)的对象在两个本地文件夹中找到,但点击这些文件夹显示没有这样的文件。有一个,但它不是Windows资源管理器所说的......它是下面的另一个文件夹。当我选择要打开的项目时,我得到:

&#34; Web项目目前已配置为使用网址&#39; http://localhost/<different one>&#39;。 Web服务器将此URL映射到不同的文件夹&#39; C:\ Project \ ccr \ TLog \ Development \ Development \ Externals \ CommonLogin。&#39;是否要将此网址重新映射为指向此Web项目的文件夹?&#34;

我说&#34;是&#34;

我为另一个项目收到相同的消息,然后再次选择&#34;是&#34;按钮。

项目加载。它似乎是解决方案中正确的项目集合。

也许这次 工作了(时尚之后)。我的意思是,当我编译解决方案时,Visual Studio告诉我有11251个错误......或许它是添加引用和诸如此类的问题。我确实得到了这个:&#34;解决方案中的一个或多个项目未正确加载。有关详细信息,请参阅输出窗口。&#34;

无论如何,莎草不是在阳光下晒太阳,而是听着幸福的蓝鸟,而是从湖中枯萎了,没有鸟儿唱歌。

更新10

我终于通过追随Jason Williams&#39;回答;但是,由于引用中断,我仍然有11,257条错误消息。有没有办法自动修复这些过程,或者我必须一次一个组装(我知道有些人会修复超过1个错误的信息,但仍然......)

更新11

以下是萨克拉门托国王曾经谈论过的事情:&#34;获取特定版本&#34; (见他回答后的评论):

enter image description here

2 个答案:

答案 0 :(得分:9)

您的更新9听起来基本正确。您可以跳过第1步。

然而,听起来好像在第5步中要注意你没有用你的映射创建一个双重文件夹(例如,如果你有一个名为$ / Whatever的TeamProject,并且它有一个名为Whatever的根文件夹,那么你实际上是有一个路径$ / Whatever / Whatever,或者你可以将$ /映射到D:\ Code \ Whatever - 无论哪种方式你都可能最终得到D:\ Code \ Whatever \ Whatever)。这可能不是问题,但是创建源代码的人可能没有想过通过使用相对路径引用使其可重定位,在这种情况下,您可能需要确保它以正确的绝对路径结束或者它可能无法正确编译。

创建工作区后,它会询问(步骤7)是否要使用更改更新工作区。这是正确的计划,但我不相信它 - TFS会记住它在您工作区的每个文件夹中的含义,所以如果它被您过去做过的任何事情弄糊涂了,它可能会决定你已经有一些源代码而不是更新它。因此,要在此步骤中防弹,请单击&#34;否&#34;然后手动转到源代码管理资源管理器,右键单击根文件夹并执行&#34;获取特定版本&#34;。然后勾选复选框以使其获取所有文件(即使它认为您拥有它们)并强制覆盖所有内容(甚至是可写文件),并且您将确保获得源代码的完整副本。

在(9),您需要从映射的工作区(本地驱动器)打开解决方案。转到文件&gt;源控制&gt;更改源代码管理并检查解决方案是否已绑定。如果没有,请选择所有内容并单击“绑定”。这是修复所有内容的魔术按钮,宇宙中没有人理解这个用户界面,它为什么存在,为什么它如此复杂,以及为什么当它们从未用于任何事情时,对话框上没有其他选项存在。所有这些绑定都会写下你在本地磁盘上获得解决方案的地方,这样你就会有一种空洞的感觉以及一个想法的暗示,这应该可以正常工作而不必在对话框中弄乱这样如果您在源代码管理中使用某些内容并且您已经在线&#34;那么做一些应该自动发生的事情毫无意义。模式。

此绑定过程应该意味着您现在进行的任何编辑都会导致自动检出受影响的文件。 (如果没有发生这种情况,请检查工具&gt;选项&gt;源代码管理以确保您拥有合理的设置)

现在,如果您在编译时遇到错误,可能的嫌疑人将是:

  • 服务器上的代码无法构建。例如有人忘记检查所有依赖关系等。
  • 服务器上的代码很好,但是你已将它映射到PC上的不同位置,而不是原作者所使用的(例如你使用D:\并且他使用了C :),并且他已经没有让它可以重新定位。如果是这样,最快的解决方法是找出他的映射是如何工作的,并在PC上完全复制它(提示:您可以在工作区编辑器中查看其他人的映射,并将它们复制并粘贴到您自己的映射中)。真正的解决方案当然是追踪每个破碎的(绝对)文件引用,并使其相对于使解决方案可重定位。
  • 服务器上的代码很好,但您的工作区映射与您设置Web服务器的方式不匹配,然后当Visual Studio注意到两者不匹配时,您和#39;点击了#34;是&#34; (不知道这意味着&#34;是的,请为我和#34;而不是&#34; no&#34; (&#34;我的源代码控制映射中一定有错误,我想我会先回去仔细检查一下,谢谢&#34;)。在这种情况下,仔细检查您的源代码控制映射是否会将代码丢弃到Web服务器认为它将找到它的位置,并且(删除批次后,修复映射,并执行获取特定版本以强制TFS获取在正确的地方清理副本)可能你的很多问题都会消失。
  • 服务器上的代码很好,但Visual Studio糟糕的参考系统打破了一些参考。从本质上讲,如果它无法准确找到引用的装配,而不是说“错误:它不在那里”,而是通过发现之旅你的电脑,并选择一个类似名称的其他东西,说&#34;应该做&#34;。在一小部分情况下(99%)完全可以完成任务,而剩下的1%则完全打破了它们。查看错误列表的位置通常位于底部 - 最后一个错误通常是失败的引用,而前面的1000个错误只是副作用。另外,请检查每个项目的黄色感叹号图标参考 - 这些都是缺少参考。最后,如果你有一个MyAssembly.dll或&#34; MyAssembly&#34;导致无法解释的构建错误的项目,然后在硬盘中搜索&#34; MyAssembly.dll&#34;。当您在构建项目中发现3,245个该dll副本时,请删除所有这些副本,除了&#34; right&#34;一,看看你的构建成功是否有所改善。除此之外,您只需要阅读错误并逐一解决它们。

我担心从这个遥远的地方得到一个确切的答案并不容易,但希望这至少可以证实你已经掌握了基本的想法,并且可能会给你一些线索。帮助您诊断您的痛苦。我的钱将在工​​作区映射上,与一切只需点击就位所需的神奇设置有点不同,让你惊呆了,并想知道为什么你只需要花3天时间来解决这样的问题。噩梦般的问题只是发现你从来没有超过3个字符,并且远离迷宫的中心。

从第9步的线索中,它可能类似于

$/TLog  -> C:\Project\ccr\TLog

而不是

$/TLog -> C:\TLog

答案 1 :(得分:1)

这个问题已经有了很好的答案,但是我想分享我的步骤,因为它们可能会有所帮助:

  1. 检查您当前的Workspaces,以我为例,我有两个,这引起了我的问题(该图像仅供参考,因为我在解决该问题后便将其作为参考) enter image description here

  2. 由于我不需要这两个工作区中的任何一个,因此我使用上一步中显示的窗口将其删除,因此请注意不要删除您可能需要的其他工作区

  3. 然后,您需要像第一次那样连接到TFS,当发生这种情况时,VS会要求映射工作区(服务器到本地路径),然后单击MAP & GET < / p>

  4. 所有源代码的获取完成后,打开解决方案,它询问我是否要将其绑定到服务器并单击“是”

那解决了问题

相关问题