尝试将新机器重新附加到我的项目具有的所有依赖项,我目前的障碍是 TFS 绑定(bind)。我看到这个:
...当我选择文件 |源代码管理 |更改源代码管理...,但单元格中的值是只读的。当我捣碎“绑定(bind)”按钮时,我被骂“找不到解决方案的映射”。是的,我知道,这就是我想重新绑定(bind)它们的原因。怎么样?
更新
选择文件 |源代码管理 |工作区,我得到了一个工作区列表(但只有在我选中“显示远程工作区”复选框之后),我目前感兴趣的工作区对我来说看起来不错:
……所以这有什么问题吗?我假设“$\tlog”已连接到远程源;并且我本地机器上的源是“本地”单元格指示的地方,所以......有什么问题?为什么不让我把这对重新介绍给对方?
更新 2
重新启动时,我收到“相关的源代码控制插件未安装或无法初始化。此错误的常见原因包括服务器不可用和/或不正确的工作区映射。”并基于此处的答案:How do I get Visual Studio Team Foundation Server to see I moved code to a different folder? ,我允许它“永久解除绑定(bind)”。但是当我查看工作区时,设置与以前完全相同:连接与以前完全相同(确实,它们不起作用,但我认为永久解除绑定(bind)会将它们从工作区中删除)。
更新 3
再次重新启动 Visual Studio,绑定(bind)似乎被切断了 - 不再有 err msg。但是,它们仍然在工作区中显示为已连接!?!
更新 4
我现在可以编辑“更改”对话框,但即使连接看起来准确,它也告诉我状态无效:
我知道本地路径是正确的,我不能对服务器路径做任何事情(AFAIK)(我确定这没有改变),那么为什么它无效?一定会喜欢这个“生产力”软件。
更新 5
我试过了。我从“GlobalSection(TeamFoundationVersionControl)”部分中删除了所有内容,选择了 File |源代码管理 |更改源代码管理...,然后突出显示解决方案中的第一个项目,选择“绑定(bind)”按钮。它来自于:
...在捣碎“绑定(bind)”按钮后:
IOW,在 Mudville 仍然没有快乐(凯西已经三振出局)。它说它已连接,但它无效。如果它能解释为什么会很好 - 它有什么无效的?给我一个线索,TFS!
更新 6
好吧,我确实更进一步,并绑定(bind)了一些项目:
然而九个仍然顽固不化。我试图通过更改 .sln 文件来修复这些绑定(bind)。如前所述,解决方案中的 9 个项目的状态为“无效”,其余项目(数量超过两倍)为“有效”
所以我将有效与 in- 进行了比较,我看到所有“无效”都有额外的路径“描述”,例如“../../”和“..\”等。所以,我去掉了所有这些出来,用那个替换 .sln,然后......什么都没有。无效者仍然无效。
然后我选择了 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,然后在 Visual Studio 起始页上选择“连接到 TFS”
3)您选择文件|源代码管理 |工作区... |编辑...
4) 在“编辑工作区”对话框的“工作文件夹”部分的记录/行上,单击“本地文件夹”条目以便能够对其进行编辑
5) 您混搭省略号按钮以显示文件夹对话框。
6) 然后选择您在步骤 1 中创建的文件夹并混合“确定”按钮。
您现在在“工作文件夹:”部分有一条记录,如下所示
Status Source Control Folder Local Folder
===== ================== ==========
Active $/Whatever C:\Whatever
7)你现在捣碎这个“确定”按钮
注意:当我这样做时,我得到一个对话框,上面写着:
“工作区已修改
版本控制中的一个或多个工作文件夹已更改。你吗
想要从版本控制中获取最新文件以更新您的本地
工作区?”
我捣碎了"is",然后看到:
“取得进展
C:\随便\\...”
...并且进度条不断更新的文本似乎表明它正在做我所期望的(将存储库文件复制到本地文件夹,根据需要创建子文件夹)。
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。'您想重新映射此 URL 以指向此 Web 项目的文件夹吗?”我说是”
我收到另一个项目的相同消息,然后再次选择"is"按钮。
项目加载。它似乎是解决方案中正确的项目集合。
也许这次它真的奏效了(在时尚之后)。我的意思是,当我编译解决方案时,Visual Studio 告诉我有 11251 个错误......也许这是添加引用之类的问题。我确实得到了这个:“解决方案中的一个或多个项目未正确加载。有关详细信息,请参阅输出窗口。”
无论如何,不是晒着太阳听幸福的青鸟,湖边的莎草已经枯萎了,没有鸟儿歌唱。
更新 10
我终于按照杰森威廉姆斯的回答让它工作了;但是,由于引用损坏,我仍然有 11,257 条错误消息。有没有办法自动修复这些问题,或者我必须一次通过一个程序集(我知道有些人会修复超过 1 个错误消息,但仍然......)
更新 11
这是昔日萨克拉门托国王所说的:“获取特定版本”(请参阅他回答后的评论):
最佳答案
您的更新 9 听起来基本正确。您可以跳过步骤 1。
但是,在第 5 步中,请注意不要使用映射创建双文件夹(例如,如果您有一个名为 $/Whatever 的 TeamProject 并且它有一个名为 Whatever 的根文件夹,那么您实际上有一个路径 $/无论如何/无论如何,或者您可以将 $/映射到 D:\Code\Whatever - 无论哪种方式,您都可能以 D:\Code\Whatever\Whatever 结束)。这可能不是问题,但创建源代码的人可能没有考虑过使用相对路径引用使其可重定位,在这种情况下,您可能需要确保它以正确的绝对路径结束,否则可能不会正确编译。
创建工作区后,它会询问(步骤 7)您是否希望使用更改更新工作区。这是正确的计划,但我不相信它 - TFS 会记住它认为您在工作区的每个文件夹中有什么,所以如果它被您过去做过的任何事情弄糊涂了,它可能会决定您有一些的源代码已经而不是更新它。因此,为了在此步骤中防弹,单击“否”,然后手动转到源代码管理资源管理器,右键单击根文件夹并执行“获取特定版本”。然后勾选两个复选框以使其获取所有文件(即使它认为您拥有它们)并强行覆盖所有内容(甚至可写文件),您将确保获得源代码的完整副本。
在 (9) 处,您需要从映射的工作区(本地驱动器)打开解决方案。转到 File > Source Control > Change Source Control 并检查解决方案是否已绑定(bind)。如果没有,请选择所有内容并单击绑定(bind)。这是解决所有问题的神奇按钮,宇宙中没有人了解这个用户界面,为什么它在那里,为什么它如此复杂,以及为什么对话框上的其他选项从不用于任何事情时都不存在。绑定(bind)所做的一切就是写下您在本地磁盘上获得解决方案的位置,这样您就会有一种空虚的感觉,并暗示这应该可以正常工作,而您不必在对话框中像这样搞砸如果您正在使用源代码管理中的某些内容并且处于“在线”模式,那么做一些应该自动发生的事情是没有意义的。
此绑定(bind)过程应该意味着您现在所做的任何编辑都会导致自动 check out 受影响的文件。 (如果没有发生这种情况,请检查工具 > 选项 > 源代码管理以确保您的设置正常)
现在,如果您在编译时遇到错误,可能的嫌疑人将是:
恐怕要从这么远的地方得到一个确切的答案并不容易,但希望这至少可以确认您的基本想法是正确的,并且可能会给您一些线索来帮助您诊断您的痛苦。我的钱会花在工作区映射上,这与所有东西只需点击到位所需的魔法设置略有不同,让你惊呆了,想知道为什么你只需要花 3 天时间来解决这样一个噩梦般的问题却发现你从来没有超过 3 个字符,而且离迷宫中心只有一条斜线。
从您的第 9 步中的线索来看,它可能类似于
$/TLog -> C:\Project\ccr\TLog
而不是
$/TLog -> C:\TLog
关于tfs - 如何在 TFS 中重新绑定(bind)我的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17459016/