【发布时间】:2015-09-16 21:15:35
【问题描述】:
我有一个结构如下(简化)的 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)
【问题讨论】:
-
请永远不要成为医生。 “这些东西在这里做什么?我只是要把它舀出来。为什么甚至需要它?”
-
我无意成为其中一员,所以我认为我们在那里很安全。 ;-) 我只是想了解 VS 如何将这些文件夹标记为项目,而不是其他项目。
-
呃,原来如此。该项目类型 2150E333-8FDC-42A3-9474-1A3956D46DE8 的指南用于文件夹。您可以搜索它,也许会找到更多信息。很久以前可能是支持文件夹的黑客攻击,但他们从未更改过它。谁知道?