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

B. *_*non 10 tfs

尝试将新机器重新连接到我的项目所具有的所有依赖项,我目前的障碍是TFS绑定.我看到了这个:

在此输入图像描述

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

UPDATE

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

在此输入图像描述

......那么这有什么问题?我假设"$\tlog"已连接到远程源; 我本地机器上的源 "本地"单元格所指示的位置,所以...问题是什么?为什么不让它重新介绍这对?

更新2

重新启动时,我得知,"相关的源代码管理插件未安装或无法初始化.此错误的常见原因包括服务器不可用和/或不正确的工作区映射." 并基于这里的答案:如何让Visual Studio Team Foundation Server看到我将代码移动到另一个文件夹?,我允许它"永久解开".但是当我查看工作区时,设置与以前完全相同:连接与之前完全相同(这是真的,它们不起作用,但我认为永久解除链接会将它们从工作空间中删除).

更新3

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

更新4

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

在此输入图像描述

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

更新5

我试过了.我删除了"GlobalSection(TeamFoundationVersionControl)"部分中的所有内容,选中了File | 源控制| 更改源控制...,然后突出显示解决方案中的第一个项目,选择"绑定"按钮.它是从这个:

在此输入图像描述

捣碎"Bind"按钮后...

在此输入图像描述

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

更新6

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

在此输入图像描述

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

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

然后我接受了DaveShaw建议的"核选项":TFS问题:解决方案没有源控制选项(获取最新,签出,签到)

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

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

不是真的,但它仍然非常令人沮丧.

更新7

有关我尝试过的内容和发生的事情的详细信息,请参阅http://social.msdn.microsoft.com/Forums/vstudio/en-US/08d3e956-62a8-4874-8468-f178d12ac67c/why-is-该请求的URL和物理路径-在浏览器-是-试图使用的-不同的-从最实际?教授为必填

更新8

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

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

更新9

这是我认为它应该工作的方式:

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

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

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

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

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

6)然后选择在步骤1中创建的文件夹并将"确定"按钮混合.

您现在在"工作文件夹:"部分中有一条记录,如下所示

Status  Source Control Folder   Local Folder
=====   ==================  ==========
Active  $/Whatever      C:\Whatever
Run Code Online (Sandbox Code Playgroud)

7)你现在混合这个"确定"按钮

注意:当我这样做时,我得到一个对话框,上面写着:

"工作区已修改版本控制中的一个或多个工作文件夹已更改.是否要从版本控制中获取最新文件以更新本地工作区?"

我捣蛋"是",看到:

"获得进步C:\ Whatever \\\ ......"

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

8)在"编辑工作区"对话框中混搭"关闭"按钮

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

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

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

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

我说是"

我为另一个项目收到相同的消息,然后再次选择"是"按钮.

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

或许,它真的已经努力这段时间(一种时尚后).我的意思是,当我编译解决方案时,Visual Studio告诉我有11251个错误...也许这是添加引用和诸如此类的问题.我确实得到了这样的结果:"解决方案中的一个或多个项目未正确加载.有关详细信息,请参阅输出窗口."

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

更新10

按照杰森威廉姆斯的回答,我终于得到了它的工作; 但是,由于引用中断,我仍然有11,257条错误消息.有没有办法自动修复这些过程,或者我必须一次一个组装(我知道有些人会修复超过1个错误的消息,但仍然......)

更新11

以下是昔日的萨克拉门托国王所说的"获取特定版本"(参见他的回答后的评论):

在此输入图像描述

Jas*_*ams 9

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

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

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

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

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

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

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

恐怕一个确切的答案是不是从这个简单的很远,但我希望这将至少确认您已经有了基本的想法吧,也许会给你一些线索,这将有助于您诊断您的痛苦.我的钱将是对工作区映射是一个极小的微小位来自魔法设置它需要的一切只是点击进入不同的地方,让你目瞪口呆,不知道为什么你刚刚度过3天解决这样的问题梦魇只是发现你从不超过3个字符,并且远离迷宫的中心.

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

$/TLog  -> C:\Project\ccr\TLog
Run Code Online (Sandbox Code Playgroud)

而不是

$/TLog -> C:\TLog
Run Code Online (Sandbox Code Playgroud)