【问题标题】:Howto resolve... Visual Studio Source Control notification "Projects have recently been added to this solution"如何解决... Visual Studio 源代码管理通知“项目最近已添加到此解决方案中”
【发布时间】:2010-11-18 02:24:28
【问题描述】:

一些使用Visual Studio 2008的人打开解决方案后,在Visual Studio Team Foundation中签入会弹出一个对话框:

最近已将项目添加到此解决方案中。您想从源代码管理中获取它们吗?

每次加载解决方案时都会发生这种情况(即使没有添加任何项目)。我发现消除这个小烦恼的唯一方法是完全重建 SLN 文件。

有没有人找到更好/更简单的方法?

【问题讨论】:

  • 对我来说,这是一个导致问题的特定项目。虽然我无法确定原因,但通过查看解决方案文件的最新更改很容易找到。我删除了项目并重新添加了它。

标签: visual-studio tfs


【解决方案1】:

我最近在解决方案中移动了许多项目后遇到了这个问题。我最终发现,每个项目实际出现在解决方案文件中多次次,每个带有路径信息!因此,即使项目主要参考中的路径是正确的,但在文件的下方却是错误的。

因此,请浏览 .sln 文件并确保所有每个项目的引用中的路径都是正确的。

例如,我的一个项目的第一个参考是:

Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ObexPushVB", "Samples\ObjectPush\ObexPushVB\ObexPushVB.vbproj", "{E3692A59-D636-48E8-9B57-7DA80A88E517}"
EndProject

就我而言,那里的路径已正确更新。但是我们也有那个项目:

SccProjectUniqueName8 = Samples\\ObjectPush\\ObexPushVB\\ObexPushVB.vbproj
SccProjectTopLevelParentUniqueName8 = InTheHand.Net.Personal.sln
SccProjectName8 = Samples/ObjectPush/ObexPushVB
SccLocalPath8 = Samples\\ObjectPush\\ObexPushVB

所以所有这些路径也需要更新!在我手动修复之后一切都很好。 (顺便说一句,修复后的样本)。

【讨论】:

  • 仅供参考:为了完成您上面概述的内容,但以更自动的方式,我在文本编辑器中打开了解决方案文件(在检查出来进行编辑后)并删除了 GlobalSection(TeamFoundationVersionControl) = preSolution节点。然后我在 Visual Studio 中打开了解决方案,并对解决方案中的所有内容进行了 Unbind/Bind。这将所有内容更新为正确的路径,现在错误消失了。谢谢你的帖子。
  • 谢谢。这听起来是一种更安全、更快捷的解决方法! (虽然我很喜欢时不时地进行一些受虐狂的配置文件手动编辑!:-,))
  • 谢谢alanjmcf!那为我修好了。我很高兴我不必经历 Chris Lively 接受的答案中描述的所有麻烦。
  • @MattCofer 还值得一提的是,该解决方案可能有多个 GlobalSection(TeamFoundationVersionControl) = preSolution 的节点。例如,我有 3 个!
  • 修复所有 Scc* 标签也对我有用。谢谢! (顺便说一句,这是 VS2013 的最新更新)。
【解决方案2】:

嘿,这实际上发生在我身上大约 4 年前。

首先,在我看来,您团队中的某个人没有将所有更新应用到他们的 Visual Studio 安装中。到处走走,让每个人都升级到适用于您的 VS 版本的最新服务包。

完成后,取消绑定解决方案,修复文件,重新绑定并告诉所有人强制获取 TFS 项目的最新信息。

http://social.msdn.microsoft.com/Forums/en-US/tfsversioncontrol/thread/c2822ef1-d5a9-4039-9d3e-498892ce70b6

http://www.nivisec.com/2008/09/vsts-projects-have-recently-been-added.html

(断开的链接:http://technorati.com/posts/Yadz3Mj1pxHPSJLlnUs1tL1sIwU5jXa5rNBbIAnYdvs%3D

【讨论】:

  • 顺便说一句。这实际上是 5 年前的事了。 :P
  • @Tymek:嗯......我在 09 年写了这篇文章,已经 3 1/2 年了......所以更接近 7+。 :) 猜猜我已经这样做了一段时间了。
  • 我使用了“已编辑”日期,但当我查看它时,编辑日期仅适用于损坏的链接。
  • 我发现 nivisec 链接最有用
  • 在编辑sln文件之前不要忘记在解绑操作后“关闭解决方案”。这可能是一个明智的选择,但让我失去了一个小时。
【解决方案3】:

如果您的解决方案引用了位于解决方案目录之外的项目,但该项目实际上并不存在(即您在打开解决方案之前没有将其签出),也会出现此消息。 VSS(或 TFS)随后会向您提供该消息,单击“确定”将自动获取丢失项目的最新信息,因此您的解决方案中不会有任何已卸载的项目。

编辑

再次阅读让我感到困惑。基本上,如果您的解决方案的源代码控制绑定到不在您的解决方案所在文件夹内的项目,并且该外部项目实际上并不存在于您的计算机上,您就会收到消息。单击“确定”将为您检查项目。

【讨论】:

  • 在最后一行,您的意思是“检查项目”还是“获取项目的最新信息”?你的段落在这一点上似乎是矛盾的。
  • 是的,我应该避免清晨发帖。单击“继续”将获取项目并将其放置在物理上相对于请求它的解决方案的位置。因此,如果您的解决方案位于 C:\Dev\Client\Someone\SolutionA 并且“最近添加的项目”在您的解决方案中的 ..\..\..\Common\ProjectB 被引用,它将获取该项目并将其放在 C:\Dev\Common\ProjectB 所以您的解决方案引用都是有效的。这有意义吗?
【解决方案4】:

在我的情况下,它是对已删除的测试项目的引用。

当我在解决方案资源管理器中检查所有项目时,我注意到了这一点。我们的团队使用解决方案文件夹,因此它通常不可见,并且因为它是一个测试项目,它对应用程序没有任何影响。

从解决方案中删除项目后,不再显示消息。

【讨论】:

    【解决方案5】:

    我正在使用 Visual Studio 2013。

    对我来说,它发生在我修改了我的解决方案的文件夹结构之后(我直接在源代码浏览器上为项目添加了一个子文件夹)。通过使用解决方案资源管理器从我的解决方案中删除所有项目,我摆脱了这个无聊的错误。之后,我关闭了 Visual Studio,手动编辑了 .sln 文件并删除了整个部分:

    GlobalSection(TeamFoundationVersionControl) = preSolution
    

    最后,我只是使用解决方案资源管理器将项目作为“现有项目”添加回解决方案。 Visual Studio 将自行重新创建 .sln 文件的已删除部分。

    【讨论】:

      【解决方案6】:

      如果有人添加项目、签入已编辑的解决方案文件,但未将项目目录添加到源代码管理,则会出现相同的错误消息。

      长话短说 - 此错误可能意味着在 .sln 文件中有对 .csproj 文件的引用,但 .csproj 本身在物理上丢失了。

      【讨论】:

        【解决方案7】:

        在我的例子中,我在 VS 中重命名了一个(n)(卸载的)项目。它正确地将项目移动到一个新文件夹,并且没有丢失任何数据。但是解决方案文件仍然指向仍然存在但为空的旧目录(因此无法实际加载项目)。

        从解决方案中删除项目后(没有问题,因为文件夹已经为空),问题就解决了。

        从新位置再次添加项目也没问题。

        【讨论】:

          【解决方案8】:

          在将许多受源代码控制 (VSTS) 控制的单元测试项目移动到另一个文件夹后,我遇到了这个问题。在此之后,每当我打开一个分支时,我都会收到“最近已将项目添加到此解决方案中。您想从源代码管理中获取它们吗?”错误。

          由于某种原因,主干中的 csproj 文件不受源代码控制,这意味着分支版本中缺少它。我发现在移动源代码控制项目后有时会发生这种情况。

          为了修复它,我打开了原始源主干,使用源代码管理资源管理器添加丢失的文件,然后将主干合并到分支以复制丢失的 csproj 文件。

          在此之后,我可以打开分支版本而不会弹出警告。

          【讨论】:

            猜你喜欢
            • 2011-01-18
            • 2015-02-12
            • 1970-01-01
            • 2022-11-03
            • 1970-01-01
            • 2017-07-11
            • 2012-12-23
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多