为什么 Visual Studio 将文件夹视为项目?

Why does Visual Studio treat folders as projects?

我有一个 Visual Studio 结构如下(简化)的解决方案:

Root Folder
|   Solution.sln
|   
+---Build
|
+---Code
|   +---Business Layer
|   |   |   Business Layer.csproj
|   +---Client
|   |   |   Client.csproj
|   |           
|   +---Data Access Layer
|   |   |   Data Access Layer.csproj
|   |
|   +---Database
|   |   |   Database.sqlproj
|   |
|   \---Database User Management
|       |   Database User Management.pssproj
|
+---Documentation
|
+---Packages
|                
+---Tests

这里的 tl;dr 是我的所有项目都存储在 2 个单独的文件夹下。代码...以及单元测试项目的程序代码和测试。

但是,在我的 .sln 文件中,我注意到这些行:

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Code", "Code", "{2C7E59FD-BA42-4D31-A5E0-818583B7E1EC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{1D1FDB9D-78EC-4552-B9EE-17E02E92FC2E}"
EndProject

这些文件夹不是项目,它们仅用于组织项目,这样我就不会将单元测试项目与实际软件项目混在一起。

从 .sln 文件中删除这些行基本上将我的所有项目放在解决方案资源管理器树中的一个节点下,但似乎保留了文件夹结构。

同样奇怪的是它只对代码和测试文件夹而不是文档和包执行此操作。

这就是 Visual Studio 组织项目的方式吗?

编辑:回答为什么我什至不厌其烦地修改 .sln 文件。当我在 Visual Studio 中打开它时,它说它有 8 个项目要加载,这很奇怪,因为目前只有 5 个。(x3 .csproj、x1 .pssproj 和 x1 .sqlproj)

这就是 Visual Studio 解决方案文件格式的工作原理。虽然显示在ProjectEndProject之间,但文件夹仍然是文件夹。