如何完全删除TFS绑定

246

我有一个包含大量项目的解决方案,

我想完全删除源代码控制绑定,该怎么做?

更新: 我真正想做的是将一个解决方案及其项目从TFS 2005移动到2008。这就是为什么我要删除绑定,是否有更好的方法可以实现?


我认为您不必删除并重新添加绑定以升级到更新的TFS。2008客户端完全替换了2005客户端,并在旧和新服务器上适用于VS 2005和2008。 - Bert Huijben
2
我创建了一个名为VSIX的插件,可以删除TFS绑定并压缩您的解决方案副本(还会删除所有不必要的文件)。请参见http://visualstudiogallery.msdn.microsoft.com/eb5d5d7d-f67e-4076-8fd0-23f36976deff。 - RickAndMSFT
空的 Models 文件夹出了问题 @RickAnd-MSFT,我不得不删除并重新创建它,现在一切都很好。谢谢。 - Tom Stickel
@RickAnd-MSFT 那可能应该是一个答案。 - Chris Marisic
14个回答

270

文件 -> 源代码控制 -> 高级 -> 更改源代码控制,然后取消所有项目和解决方案的绑定和/或断开连接。

这应该会从解决方案和项目文件中删除所有绑定。(之后可以在工具 -> 选项 -> 源代码控制 -> 插件选择中切换SCC提供程序)。

SCC规范规定所有SCC提供程序都应该实现此行为。(我只测试过VSS、TFS和AnkhSVN)


4
+1,但不幸的是,这仍然保留了项目文件中的元素,并保留了.vssscc文件。然而,解决方案文件被清理了。使用的是VS 2010 Pro,这是我们第一次使用TFS项目。 - James Skemp
28
假设您可以连接到原始的TFS服务器。 - ATL_DEV
2
我创建了一个名为VSIX的插件,可以删除TFS绑定并压缩您的解决方案副本(还会删除所有不必要的文件)。请参见http://visualstudiogallery.msdn.microsoft.com/eb5d5d7d-f67e-4076-8fd0-23f36976deff。 - RickAndMSFT
我的TFS工作区由于长时间未活动(可能是这个原因)已被删除。但我仍然能够删除绑定。然而,第一次尝试时它没有起作用。第二次检查时所有的绑定都还在。不过第二次解除绑定后就成功了。 - DerpyNerd

155

我在Visual Studio中没有“文件”->“源控制”菜单,因为我从未在此安装的Visual Studio上使用过TFS。

我的问题是,我正在从互联网打开一个解决方案,原始作者忘记了删除TFS绑定,因此每次打开解决方案时都会弹出一个烦人的弹出窗口,显示:

"Go Offline

The Team Foundation Server http://some-other-guys-tfs-server/ 
is currently unavailable.

The solution will be opened offline."
为了消除这个问题,我删除了与.sln文件相邻的.suo文件,然后用记事本打开了.sln文件,并删除了整个段落:
GlobalSection(TeamFoundationVersionControl) = preSolution
    SccNumberOfProjects = 2
    SccEnterpriseProvider = {xxxxx}
    SccTeamFoundationServer = http://some-other-guys-tfs-server/
    SccLocalPath0 = .
    SccProjectUniqueName1 = xxDemo\\xxDemo.csproj
    SccProjectName1 = xxDemo
    SccLocalPath1 = xxDemo
EndGlobalSection

将 .sln 文件在记事本中保存,然后在 Visual Studio 中打开,问题解决。

更新: Saveen Reddy 已经创建了 一款工具 来完成此操作。不过我还没有尝试过。


3
就是这样,我也遇到了这个弹出窗口。谢谢。但是如果我删除了.suo文件并启动VS,我会失去我的打开文件历史记录。将.suo文件移回来,我就能恢复我的打开文件了。所以我只需要删除这一部分。 - ibram
直到我删除了.suo文件,我才解决了问题。只有这样,它才会询问我是否要永久删除源代码控制绑定。 - zacharydl
在如今这个时代,我们需要为这样一个简单而常见的任务做这件事吗?微软应该考虑可用性... - Damn Vegetables
我查看了该工具的源代码,发现导致TFS连接问题的部分是所有以<Scc开头的.csproj文件。我只需将其删除即可解决问题。 - CodingYourLife
1
在 VS 2015 中运行得非常好,唯一需要做的就是从 .sln 文件中删除 TFS 部分。 - Tony Dong
显示剩余2条评论

42

最简单的解决方案是打开Visual Studio, 在工具 > 选项 > 源代码控制中停用TFS插件并重新打开你想清理的解决方案。 Visual Studio会询问是否要删除源代码控制绑定。


1
还有我忘了提到,这是一个VS 2008解决方案,我认为你的答案只适用于VS 2005。 - Michael L
1
尝试了许多不同的解决方案,但这似乎是最简单和最快的(在Visual Studio 2012中)。到目前为止,我已经在我拥有的解决方案上工作了! - olf
太棒了!它快速、简单,正是我需要的工具,可以清除项目中所有的TFS绑定。 - Andreas
3
这似乎在2013年不起作用 - 源代码控制插件存储在解决方案中。 - Rob
1
这对我在VS2013 Ultimate中非常有效。我正在将一个解决方案从TFS移动到SVN,这个方法救了我的命。 - Rob Horton
显示剩余4条评论

12

如果有人需要在非Visual Studio应用程序环境下执行此操作,例如通过命令行,我编写了一个小工具,可以从解决方案和项目文件中删除源代码控制绑定。该工具的源代码可在此处获得:https://github.com/saveenr/VS_unbind_source_control


抱歉,这对我没有起作用。它一直在问我是否要断开与新服务器的连接并重新连接到旧服务器。 - ATL_DEV
1
不错的小工具。我刚刚将我们公司的代码库从TFS转换到SVN,那些提示信息真是讨厌。顺便说一下,我在VS2019中运行了这个工具,没有任何问题,并且它也可以与2015年、2017年的版本一起使用。我对其进行了小改动,以更好地列出未能成功转换的解决方案/项目。如果你需要转换很多项目,它们可能会被遗漏。 - j.hull

7

以下是适用于我的下一步操作:

  1. 删除所有 .vssscc(解决方案绑定)和 .vspscc(项目绑定)文件
  2. 从解决方案文件中删除 GlobalSection(TeamFoundationVersionControl) = preSolution 块

proj 文件的标签中也可能有关于源代码控制的信息

<SccProjectName>SAK</SccProjectName> <SccLocalPath>SAK</SccLocalPath> <SccAuxPath>SAK</SccAuxPath> <SccProvider>SAK</SccProvider>

SAK 代表 "应该已经知道", 因此可以保留。


5

这是一个旧帖子,我要补充一下@Matt Frear和@Johan Buret的答案。 两者都可以

但是在Matt的情况下,您还需要在记事本/文本编辑器中设置以下内容(VS 2012):也需要

SccProjectName = ""
SccAuxPath = ""
SccLocalPath = ""
SccProvider = ""

对于解决方案文件(.sln),每个项目都有一个。

@Johan的答案有效地实现了这一点...


4
有时候,绑定信息会被缓存。
要清除团队资源管理器的缓存,请按照以下步骤进行操作:
Go to C:\Users\<user>\AppData\Local\Microsoft\Team Foundation\2.0
Delete or rename the Cache folder.

这来自一个我现在无法找到的网站。感谢那个提供提示的人。

2

1
  1. 前往文件 -> 源代码控制 -> 高级 -> 更改源代码控制(如果更改源代码控制未出现,请单击解决方案资源管理器中的解决方案,然后再试一次)
  2. 取消绑定解决方案和所有项目

现在右键单击解决方案,您将看到“添加项目到源代码控制”。如果您想再次将项目添加到源代码控制,您可能会遇到一些错误,要求您在 TFS 上更改解决方案文件夹。这是因为您的解决方案已经在工作区中有一些映射。删除映射或删除工作区。现在,您的解决方案已完全与 TFS 或工作区解除绑定和取消映射。


1
在Visual Studio 2015中,
  1. 通过文件->源代码控制->高级->更改源代码控制取消解决方案和项目的绑定
  2. 删除C:\Users\<user>\AppData\Local\Microsoft\Team Foundation\6.0中的缓存

当我从文件夹中删除缓存后,重新打开 VS 后它会全部恢复。 - Victor_Tlepshev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接