如何解决… Visual Studio源代码pipe理通知“项目最近已被添加到此解决scheme”

在使用Visual Studio 2008打开已签入Visual Studio Team Foundation的解决scheme时,将popup一个对话框,其中提示:

项目最近被添加到这个解决scheme。 你想从源代码控制他们吗?

每次解决scheme加载时都会发生这种情况(即使没有项目添加)。 我发现删除这个小麻烦的唯一方法是完全重buildSLN文件。

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

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

首先,听起来像你的团队中有人没有将所有的更新应用到他们的视觉工作室安装。 回顾一下,让每个人升级到你的VS版本的最新的服务包。

一旦完成,取消绑定解决scheme,修复文件,重新绑定,并告诉大家做一个最新的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 )

我们在解决scheme中移动了一些项目之后,最近有这个问题。 我最终得出结论,每个项目实际出现在解决scheme文件中,每次都有path信息 ! 所以即使项目主要参考文件中的path是正确的,但在文件的后面也是错误的。

因此,通过.sln文件并确保每个项目的所有引用中的path都是正确的。

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

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

在我的情况下,path正确更新。 但是我们也有这个项目:

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

所以所有这些path都需要更新! 我手动修复后,一切都很好。 (样本有修复后的BTW)。

如果您的解决scheme引用的项目位置不在解决scheme目录中,但它并不存在(即在打开解决scheme之前没有检查过),则也会出现此消息。 然后,VSS(或TFS)会给你这个消息,点击OK就会自动获得最新的项目,这样你的解决scheme就不会有任何卸载的项目了。

编辑

再读一遍,让我感到困惑。 基本上,如果您的解决scheme将源代码控制绑定到不在解决scheme所在文件夹内的项目,并且您的计算机上没有实际存在外部项目,则会收到消息。 点击确定将检查你的项目。

在我的情况下,这是一个已被删除的testing项目的参考。

我注意到,当我检查解决scheme资源pipe理器中的所有项目。 我们的团队使用解决scheme文件夹,因此通常不会显示,因为这是一个testing项目,所以对应用程序没有任何影响。

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

我正在使用Visual Studio 2013。

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

 GlobalSection(TeamFoundationVersionControl) = preSolution 

为了完成,我只是用解决scheme资源pipe理器将项目添加回解决scheme中作为“现有项目”。 Visual Studio将自行重新创build.sln文件的已删除部分。

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

长话短说 – 这个错误可能意味着在.sln文件中有对.csproj文件的引用,但是.csproj本身实际上是缺less的。

在我的情况下,我重命名(n)(卸载)在VS项目。 它正确地将项目移动到一个新的文件夹,没有数据丢失。 然而,解决scheme文件仍然指向仍然存在但是为空的旧目录(所以项目不能实际加载)。

从解决scheme中删除项目(这是没有问题的,因为该文件夹已经是空的),问题解决了。

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

在将源代码pipe理(VSTS)下的多个unit testing项目移动到另一个文件夹后,我遇到了这个问题。 在这之后,每当我打开一个分支时,我都会得到“项目最近被添加到这个解决scheme中,你想从源代码控制中获得它们吗? 错误。

出于某种原因,来自干线的csproj文件不在源代码控制之下,这意味着它从分支版本中丢失。 我发现有时在移动源代码pipe理项

为了解决这个问题,我打开了原始的源代码树干,使用源代码pipe理资源pipe理器来添加丢失的文件,然后将树干合并到分支上以复制丢失的csproj文件。

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