Visual Studio未显示解决方案中的所有项目。

19

我不确定为什么,但是Visual Studio没有显示我的解决方案中的所有项目。 我需要它们显示出来,这样我才能在解决方案浏览器下设置默认项目。 我在一般互联网搜索中未找到此问题的解决方法。 最接近的可能是VS未显示文件夹,但这与我的问题不同。 希望有一种简单的方法来修复它,而不必逐个添加项目。 我的同事可以在解决方案浏览器中看到他们的完整项目集,因此必须是我的工作区存在损坏。


5
关闭该解决方案并重新打开它。或者尝试使用“添加现有项目”功能。 - Legends
关闭和重新打开解决方案并没有解决问题。我不应该添加现有项目,因为它本应该已经存在于其中了。我的前同事曾经有一个文件可以删除,但我现在没有笔记。当我再次进入Visual Studio时,该文件将被Visual Studio重新创建。 - Michele
这可能有点晚了,但我在VS2019上遇到了一个类似的问题,并想留下一条注释。问题出在由git clone创建的路径上。源代码库的名称为“带空格的名称”,机器上的默认目录名称因此是“A%20name%20with%20blanks”。显然,VS2019不喜欢文件夹路径中的URL转义字符。删除它们后,一切都正常运行。 - Markus Deibel
在我拉取了一个添加了新项目的解决方案后,出现了这种情况。一开始该项目并未出现。重新启动Visual Studio(2017)后,该项目才出现。 - Gustaf Liljegren
似乎存在与使用.slnf文件相关的问题,但尚未确定确切的步骤。 - Hoppe
11个回答

17

使用记事本打开你的 ".sln" 项目文件。在这个文件中,你可以看到以下列出的项目:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test.myProject.Data", "test.myProject.Data\test.myProject.csproj", "{6D7F7B84-F3BD-4A19-A069-D144C345B887}"
EndProject

如果有任何缺失的项目,请添加。如果您有旧备份或同事文件,请将缺失的项目复制并粘贴到此文件中。

在我的情况下,这很有效!!


在您的 Git/TFS 工具中,单击“与未修改内容比较”按钮。然后还原/复制粘贴更改。 - AgentFire

15

关闭 VS,删除 .vs 文件夹,然后再次打开 VS。对我有效。


.vs文件夹在哪里? - ascriven
2
在“解决方案资源管理器”中右键单击您的解决方案,然后单击“在文件资源管理器中打开文件夹”。您将在那里看到“.vs”文件夹! - funbrain9

7
我发现将现有项目重新添加到解决方案中对我很有帮助!

2
我不得不在我的工作区复制更改的文件,修复我的目录权限/所有权(它没有拥有者而不是我),重新映射工作区所在的驱动器,重新创建Visual Studio项目的快捷方式(即使理论上应该是我映射的同一个位置),重新拉取项目,并再次复制我的更改。此时,Visual Studio中又出现了缺失的解决方案,因此我可以设置启动项目并运行调试器。我不确定所有权/权限是如何被搞乱的。我想可能在某个时候其他办公室的服务器崩溃了,也许我的权限/所有权当时就混淆了。我不确定为什么VS没有显示缺失的项目,但通过上述操作已经修复了。

1

我曾遇到同样的问题,我的同事在他的电脑上看到了一个更多的项目。

我删除了我的.sln文件,并得到了与他完全相同的版本。问题仍然存在。

解决方案是:我有一个未加载的项目。显然,这保存在本地用户设置文件中(可能是.suo文件)。我寻找未加载的项目并重新加载它。


你提到的本地用户设置文件/ .suo 文件在哪里? - Sanjok Gurung
@Sanjok 应该在解决方案文件旁边 - 如果您对自己的本地副本进行了一些更改。 - kabeleced

1
如果其他解决方案对您没有用,那么请尝试以下方法。您可以使用dotnet命令将缺失的项目添加到解决方案文件中。为此,请转到您的项目的根文件夹,并从终端运行以下命令:
dotnet sln add ProjectLibrary/ProjectLibrary.csproj

ProjectLibrary/ProjectLibrary.csproj 是你缺失项目的路径。

你可以打开 .sln 文件来确认是否已经添加了该项目。你应该能看到如下内容:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLibrary", "ProjectLibrary\ProjectLibrary.csproj", "{F042B1DB-F887-44CC-941A-76569A86AF75}"
EndProject

希望这可以帮到你。

0

这个 .sln 文件结构分解 提供了一个很好的洞察,关于如何找到项目并将其填充到项目层次结构中。我的 .sln 文件丢失了所有的项目持久化块,因此我的解决方案下没有任何项目。我从以前的 git 提交中复制了这些块,问题得到了解决。我仍然不知道为什么这些块会消失或整个 .sln 文件会发生变化。


0
我遇到了同样的问题。在解决方案资源管理器中,右键单击解决方案名称。点击添加 > 现有项目...将出现“添加现有项目”窗口。选择项目文件,它将被包含在解决方案中。

点击查看如何添加项目文件


你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人能够确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community

0
关闭VStudio整个项目,进入主项目文件夹,单击.sln文件重新加载整个项目。 进入解决方案资源管理器查看哪些项目标有(未加载),右键单击并带有依赖项的项目进行加载。 有时检查项目启动是否更改,如果更改了,只需右键单击相关项目并设置为项目启动项。

0
我觉得我找到了(部分)问题和解决方案,至少根据我的经验是这样的!
大部分项目都消失了。以上的建议都没有帮助。我用记事本编辑了解决方案文件,手动删除了一个不可见的项目的所有引用。然后我从Visual Studio中重新添加了这个项目。(它不需要关闭,因为它在后台检测到文件更改并重新加载了解决方案。)我的项目再次可见了。当我将解决方案文件与之前的进行比较时,我发现重新添加的项目在一个非常奇怪的底部部分中消失了,标题为:
GlobalSection(NestedProjects) = preSolution ...
然后我删除了整个“嵌套项目”部分。哇!所有隐藏的项目又可见了。
我找不到它们之前嵌套在哪里。所有可见的项目都没有以任何方式包含“嵌套项目”。它们肯定是一些可见项目的依赖项,但你不能在依赖项部分中使用它们。
再次强调,解决方案是用记事本编辑解决方案文件,并删除底部关于嵌套项目的部分。

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