如何防止“解决方案的源代码控制之间似乎存在差异......”而不更改.sln文件

时间:2011-04-19 17:27:00

标签: visual-studio-2010 tfs version-control

注意:我看到"There appears to be a discrepancy between the solution's source control ....",但这不适用,因为我希望在没有更改.sln文件的情况下修复此

出于某种原因,任何时候我打开sln文件中的解决方案:

SccTeamFoundationServer = http://servername:8080/tfs/defaultcollection
SccAuxPath* = http://servername:8080/tfs/defaultcollection

我的VSS副本坚持将其切换为

SccTeamFoundationServer = http://servername:8080/tfs/
SccAuxPath* = http://servername:8080/tfs/

保存这些更改为我修复所有内容,但使用相同版本控制服务器的其他人都可以使用第一版但不适用第二版。我希望我的计算机版本控制服务器/路径与我的同事一致。

每个人都在使用Visual Studio 2010和Visual Studio 2010团队资源管理器。

5 个答案:

答案 0 :(得分:30)

我在使用包含* .vcxproj项目文件的解决方案时出现此问题,这些文件先前已从VS2008迁移到VS2010。 TFS的路径在.sln文件和.vcxproj文件中定义。

最简单的解决方法是更新* .vcxproj项目文件以使用SAK关键字。

即从格式更新:

<SccProjectName>$/MyProject/Directory/abc</SccProjectName>
<SccAuxPath>http://servername:8080/tfs/defaultcollection</SccAuxPath>
<SccLocalPath>.</SccLocalPath>
<SccProvider>{11111111-1111-1111-1111-111111111111}</SccProvider>

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

答案 1 :(得分:3)

您是否尝试在团队资源管理器设置 - 团队项目连接中连接到http://servername:8080/tfs/defaultcollection而不是http://servername:8080/tfs/?尝试这样做,让拥有http://servername:8080/tfs/版本签入的人重新映射您的本地实例,然后获取最新版本。

答案 2 :(得分:2)

我刚才遇到了这个问题。我终于通过断开与TFS的连接并重新连接来解决了这个问题: 在团队资源管理器(View-Team Explorer)中,右键单击您的TFS服务器名称,然后单击“断开连接”。然后单击Team-Connect to Team Foundation Server ...

当我这样做时,我没有任何待定的更改。我会检查你的代码或至少搁置你的更改,然后再这样做,以减少失去工作的机会。

发生这种情况的计算机已经运行了一年多,但我猜Visual Studio以某种方式将名称缓存为http://servername:8080/tfs/而不是http://servername:8080/tfs/defaultcollection并断开连接并重新连接到TFS重置VS到正确的http://servername:8080/tfs/defaultcollection路径。在我的服务器上(我会猜测每个人)http://servername:8080/tfs/http://servername:8080/tfs/defaultcollection指向相同的事情。 Raymund的解决方案对我不起作用 - 我遇到了与Brian一样的问题。

答案 3 :(得分:2)

使用Visual Studio,您可以通过解除绑定和绑定解决方案和/或项目来解决此问题。试试这个:

  1. 在VS中打开问题解决方案(刚刚在VS2013中执行此操作)
  2. 提交您需要提交的任何内容(让我们保持简单 - 无需合并/签入)
  3. 如果有任何待处理的更改,则撤消对该解决方案中所有项目的所有待处理更改以及对解决方案本身的任何更改
  4. 转到文件 - &gt;源控制 - &gt;高级 - &gt;更改源代码管理
  5. 选择问题项目,然后单击“取消绑定”
  6. 单击确定并关闭窗口(这是重要的 - 如果您没有单击确定VS不能正确更新解决方案
  7. 转到文件 - &gt;源控制 - &gt;高级 - &gt;更改源代码管理
  8. 选择您在#5中解除绑定的所有项目,然后点击“绑定”
  9. 单击“确定”并关闭窗口
  10. 检入您的解决方案&amp;项目变更
  11. 关闭解决方案并将其重新打开,现在一切都会好起来

答案 4 :(得分:0)

同时尝试从Source Control Explorer打开.sln文件,我想这可能是解决了这个问题的原因。