解决方案或项目中的文件夹有什么用(Visual Studio)

What is the use of folders inside a Solution or Project (in Visual Studio)

我一直在摆弄一些 public 和工作 Git 回购协议(所有 Github),随着我不断增长的 C# 专业知识...

特别是教程和课程回购,他们使用了很多文件夹。我还注意到您可以添加 "Solution Folder"。但是,我也注意到 Visual Studio 与文件夹有这种爱恨交织的关系,有时它们会映射到物理文件夹,有时它们...只是不。

那么 - 我可以用它们做什么?除了对项目中的文件进行逻辑分组以稍微组织一下之外,是否还有一个好的用例?


哦! 有一次我直接在 Visual Studio 中从我的驱动器打开一个文件夹,它就像一个解决方案一样出现 - 但它只是一个打开文件夹……有点奇怪。这是怎么回事?


信息链接

此问答 (Actual folders in Visual Solution Explorer?) 解释了更多有关如何将解决方案中的文件夹映射到物理文件夹的信息,VS 对此非常挑剔并且不这样做。甚至尝试保持同步...

如果我没有正确理解您的问题,那么您的 solution/project 中的文件夹基本上有两种最常见的用途。

首先,可能也是最明显的,文件夹用于组织和分组相关文件。虽然这更多是个人喜好 - 我经常使用文件夹来组织我的代码,类似于 MVC(模型视图控制器)。

第二个通常不太常见但仍然需要熟悉的是复制到输出目录中的文件夹。当您将文件的高级 属性 复制到输出目录 设置为 始终复制 时,将创建这些文件夹如果较新则复制。然后这些文件成为 Build Action 的一部分 - 在构建您的解决方案时,这些文件被复制到输出目录。当您的解决方案中需要某些文件(例如需要与之交互的数据文件或外部资源)时使用。

示例: 我最近从事的项目需要我的解决方案与 PhantomJs 交互,PhantomJs 是一个外部独立可执行文件。我需要我的代码来调用此应用程序并将数据传递给该应用程序 - 从而使其成为我的解决方案的重要组成部分。 PhantomJs 被放置在一个文件夹中并设置为 Copy if newer 这确保了我的可执行文件副本在运行时是可用资源。