使用Visual Studio 2008打开解决方案后,Visual Studio Team Foundation会弹出一个对话框,说明:
最近已在此解决方案中添加了项目。你想从源代码控制中获取它们吗?
每次加载解决方案时都会发生这种情况(即使没有添加任何项目)。我发现删除这个小麻烦的唯一方法是完全重建SLN文件。
有没有人找到更好/更简单的方法?
答案 0 :(得分:38)
在我们移动了解决方案中的一些项目后,我最近有了这个。我最终得出结论,每个项目实际出现在解决方案文件多个次,每个带路径信息!因此,即使项目主要参考文献中的路径是正确的,文件的下方也是错误的。
请仔细阅读.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
因此所有这些路径都需要更新!我手动修复后一切都很顺利。 (样本在修复BTW之后)。
答案 1 :(得分:32)
首先,我觉得你团队中的某个人没有将所有更新应用到他们的visual studio安装中。四处走动,让每个人都升级到VS版本的最新服务包。
完成后,取消绑定解决方案,修复文件,重新绑定并告诉每个人强制获取TFS项目的最新信息。
http://www.nivisec.com/2008/09/vsts-projects-have-recently-been-added.html
(断链:http://technorati.com/posts/Yadz3Mj1pxHPSJLlnUs1tL1sIwU5jXa5rNBbIAnYdvs%3D)
答案 2 :(得分:3)
如果您的解决方案引用了位于解决方案目录之外的项目,但它实际上不存在(即您在打开解决方案之前未检查过它),也会出现此消息。然后,VSS(或TFS)将为您提供该消息,单击“确定”将自动获取缺少项目的最新信息,以便您的解决方案中不会包含任何已卸载的项目。
修改强>:
再读一遍让我感到困惑。基本上,如果您的解决方案的源控件绑定到不在您的解决方案所在的文件夹内的项目,并且外部项目实际上不存在于您的计算机上,则会收到消息。单击“确定”将为您检查项目。
答案 3 :(得分:1)
在我的情况下,它是对已删除的测试项目的引用。
当我在解决方案资源管理器中检查所有项目时,我注意到了。我们的团队使用解决方案文件夹,因此通常不可见,因为它是一个测试项目,它对应用程序没有任何影响。
从解决方案中删除项目后,不再显示消息。
答案 4 :(得分:1)
我正在使用Visual Studio 2013。
对我来说,它是在修改了我的解决方案的文件夹结构之后发生的(我直接在源代码浏览器上为项目添加了一个子文件夹)。通过使用解决方案资源管理器从我的解决方案中删除所有项目,我摆脱了这个无聊的错误。之后,我关闭了Visual Studio,手动编辑了.sln文件并删除了整个部分:
GlobalSection(TeamFoundationVersionControl) = preSolution
要完成,我只是使用解决方案资源管理器将项目作为“现有项目”添加回解决方案。 Visual Studio将自行重新创建.sln文件的已删除部分。
答案 5 :(得分:0)
如果有人添加项目,签入已编辑的解决方案文件,但未将项目目录添加到源代码管理中,则会出现相同的错误消息。
简而言之 - 这个错误可能意味着在.sln文件中有.csproj文件的引用,但.csproj本身在物理上缺失。
答案 6 :(得分:0)
在我的情况下,我在VS中重命名了一个(n)(卸载)项目。它正确地将项目移动到新文件夹,没有数据丢失。但是,解决方案文件仍然指向仍然存在但仍为空的旧目录(因此无法实际加载项目)。
从解决方案中删除项目后(由于文件夹已全部为空而没有问题)问题已解决。
从新位置再次添加项目也没问题。
答案 7 :(得分:0)
将多个源代码管理(VSTS)的单元测试项目移动到另一个文件夹后,我遇到了这个问题。在此之后每当我打开一个分支时,我都会得到“最近已将项目添加到此解决方案中。您是否希望从源代码管理中获取它们?”错误。
由于某种原因,来自主干的csproj文件不受源代码控制,这意味着它在分支版本中缺失。我发现移动源控制项目后有时会发生这种情况。
要修复它,我打开原始源干线,使用Source Control Explorer添加丢失的文件,然后将干线合并到分支以复制丢失的csproj文件。
在此之后我可以打开分支版本而不会弹出警告。