项目级别的Visual Studio解决方案文件夹

时间:2011-10-27 21:54:37

标签: c# visual-studio resources solution

在Visual Studio(2010)中,是否可以在项目级别创建“解决方案文件夹”? Visual Studio中的“虚拟”项目文件夹?

问题:

我们的解决方案中有一个项目,其中包含我们所有的文化资源文件。我们根据业务目的使用单个资源文件,即我们有多个代表每种文化的资源文件。

由于不同文化的资源文件必须存储在同一位置(路径),因此这会导致或项目在根级别包含许多资源文件。这暂时没有问题但是当我们添加对不同文化的支持时,资源文件的数量将增长到难以管理的数量

因此,为了更好地组织我们的项目,我们想在项目级别创建一个“虚拟”文件夹,我们可以在每个文化中创建一个文件夹。这可能吗?

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

我很确定你做不到。这对我来说一直是一个奇怪的细微差别,解决方案中的文件夹是虚拟的,但Project文件夹却不是。我不喜欢虚拟文件夹,因为你可能会遇到奇怪的细微差别,因为文件的物理移动不会与虚拟文件夹中的结构保持同步。让我头痛。我一直希望在解决方案级别有物理文件夹,以便在项目中共享内容。

步骤1)如果他们只需要在同一个物理文件夹中,那么首先我将它们移动到项目的Resources子文件夹中。我对项目的根本保持不变。甚至源代码也会进入“src”文件夹。只留下* .config文件在根目录中。

步骤2)在解决方案级别根据需要创建多个虚拟文件夹,将文件从项目拖动到适当的虚拟解决方案文件夹中。该文件仍然存在并显示在项目的“Resources”文件夹中,但是为了更友好地浏览文件,它们将存在于仅引用原始文件的虚拟文件夹中。

我意识到这不太理想,但我想我会指出,在项目中实际存在文件时,没有什么能阻止您使用解决方案级文件夹。

但正如我所提到的,如果您将新资源文件添加到项目中,您将始终需要采取额外的步骤,通过将它们拖放到虚拟解决方案文件夹中来“分类”它们。这是可能会失去同步的事情之一,因为如果你在没有触及这个项目的情况下几周就会忘记这些。

更好的解决方案可能是使用某种自定义构建步骤,可能使用nant或msbuild,它将资源存储在phyiscally单独的资源文件夹中,并在编译之前将它们复制到单个资源文件夹中。这样,您可以在每个子文件夹中创建资源,并且构建步骤会自动将它们复制到单个目标文件夹中。