【问题标题】:What is the use of folders inside a Solution or Project (in Visual Studio)解决方案或项目中的文件夹有什么用(在 Visual Studio 中)
【发布时间】:2017-08-10 01:30:26
【问题描述】:

随着我迅速发展的 C# 专业知识的增长,我一直在处理一些公共和工作 Git 存储库(所有 Github)...

特别是对于教程和课程存储库,它们使用了很多文件夹。我还注意到您可以添加“解决方案文件夹”。但是,我也注意到 Visual Studio 与文件夹之间存在这种又爱又恨的关系,有时它们会映射到物理文件夹,有时它们……只是不映射。

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


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


信息链接

这个问答 (Actual folders in Visual Solution Explorer?) 详细解释了如何将文件夹保留在映射到物理文件夹的解决方案中,VS 对此非常挑剔,甚至不尝试保持同步...

【问题讨论】:

  • “只是在逻辑上对事物进行分组”不是所有文件夹的用例,无论是虚拟的还是物理的?
  • @David 当然,我可能只是觉得我错过了一些东西,但我没有。这将是一个很好的“否定”答案。 :)
  • 解决方案文件夹是虚拟的,项目文件夹不是。
  • @KiwiPiet 好的 - 那么我为什么要使用(或避免)其中一个呢?听起来像是一个好的答案的开始。
  • 我想我今天在这里找到了真正的“替代品”。对于不基于 Visual Studio 的解决方案/项目,您可以直接打开文件夹。例如,我在工作中下载了一个基于 Linux 的 repo,为了查看它,我可以直接在解决方案资源管理器中打开文件夹层次结构。

标签: c# visual-studio directory organization


【解决方案1】:

如果我正确理解了您的问题,那么您的解决方案/项目中的文件夹基本上有两种最常见的用途。

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

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

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

【讨论】:

  • 谢谢。您将复制到输出目录的文件的示例是什么?就像您想与其他构建文件一起分发的配置文件或 readme.txt?
  • 没问题,请查看我的更新以获取更多信息和真实示例。
猜你喜欢
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多